我在两个不同的服务器上有两个Web应用程序。我想在标题中发送一些数据或者请求到其他Web应用程序。我该怎么做,请帮助我。
答案 0 :(得分:5)
您可以通过多种方式传递数据:
通过您的应用发出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.
使用JMS进行异步通信。
使用webservice(SOAP或REST)
使用RMI
通过在应用之间共享数据库。所以一个人写一个表,另一个人从那个表中读取
通过共享文件系统文件...一个文件写入另一个文件读取文件。
您可以使用套接字连接。
答案 1 :(得分:0)
HttpClient可以提供帮助
http://hc.apache.org/index.html
Apache HttpComponents
Apache HttpComponents™项目负责创建和 维护一个专注于HTTP和Java的低级Java组件工具集 相关协议。
答案 2 :(得分:0)
一个Web应用程序正在充当另一个Web客户端的客户端。您可以使用org.apache.http
库在Java中创建HTTP客户端代码。你将如何做到这一点取决于几件事:
如果您有基于SOAP的Web服务,那么为它创建Java客户端非常容易。如果没有,您可以执行类似的操作,并在尝试在Web应用程序中运行代码之前在常规Java客户端中测试代码。
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());
}