3

我在两个不同的服务器上有两个 Web 应用程序。我想在标头中发送一些数据或请求其他 Web 应用程序。我该怎么做,请帮助我。

4

3 回答 3

5

您可以通过多种方式传递数据:

  1. 通过从您的应用发出 http 请求:

    URLConnection conn = new URL("your other web app servlet url").openConnection();
    // pass data using conn. Then on other side you can have a servlet that will receive these calls.
    
  2. 通过使用 JMS 进行异步通信。

  3. 通过使用 Web 服务(SOAP 或 REST)

  4. 通过使用 RMI

  5. 通过在应用程序之间共享数据库。因此,一个写入表,另一个从该表读取

  6. 通过共享文件系统文件......一个人写入文件,另一个人从文件中读取。

  7. 您可以使用套接字连接。

于 2013-04-03T12:18:38.913 回答
0

一个 Web 应用程序充当另一个 Web 应用程序的客户端。您可以使用该org.apache.http库在 Java 中创建您的 HTTP 客户端代码。你将如何做到这一点取决于几件事:

  1. 你用的是http还是https?
  2. 您发送数据的应用程序是否具有 REST API?
  3. 您有基于 SOAP 的 Web 服务吗?

如果您有一个基于 SOAP 的 Web 服务,那么为它创建一个 Java 客户端非常容易。如果没有,您可以执行类似的操作并在常规 Java 客户端中测试代码,然后再尝试在 Web 应用程序中运行它。

 import org.apache.http.client.utils.*;
 import org.apache.http.*; 
 import org.apache.http.impl.client.*;

  HttpClient httpclient = new DefaultHttpClient();
  try {
     URIBuilder builder = new URIBuilder();
     builder.setHost("yoursite.com").setPath(/appath/rsc/);
     builder.addParameter("user", username);
     builder.addParameter("param1", "SomeData-sentAsParameter");
     URI uri = builder.build();
     HttpGet httpget = new HttpGet(uri);
     HttpResponse response = httpclient.execute(httpget);
     System.out.println(response.getStatusLine().toString());
     if (response.getStatusLine().getStatusCode() == 200) {
        String responseText = EntityUtils.toString(response.getEntity());
        httpclient.getConnectionManager().shutdown();
     } else {
        log(Level.SEVERE, "Server returned HTTP code "
                + response.getStatusLine().getStatusCode());
     }
  } catch (java.net.URISyntaxException bad) {
     System.out.println("URI construction error: " + bad.toString());
  }
于 2013-04-03T12:45:20.903 回答
0

HttpClient 可以提供帮助

http://hc.apache.org/index.html

Apache HttpComponents

Apache HttpComponents™ 项目负责创建和维护一个专注于 HTTP 和相关协议的低级 Java 组件工具集。

于 2013-04-03T12:21:14.167 回答