我正在尝试编写一个能够通过URL向服务器发送请求并从服务器接收响应的类。
我一直在研究HttpClient,但似乎各种用户都有很多不同类型的HttpClient对象。我不确定我应该使用哪个。如果可能的话,我更愿意使用Apache对象。
要求:
必须能够使用get方法通过URL发送请求。我想为此使用HttpMethod。 必须能够将表单提交给get或post方法。 必须能够从响应中获取和存储Cookie,并在请求标头中发送这些Cookie。 欺骗引用者标题的能力也很有用。
我正在尝试做的一些示例代码:
String searchURL = //however I'm generating the search URL
String responeAsString = "";
HttpClient client = new HttpClient(new MultiThreadedConnectionManager());
client.getHttpConnectionManager().getParams().setConnectionTimeout(30000);
HttpMethod method = new GetMethod(searchURL);
try{
client.executeMethod(method);
responseAsString = method.getResponseBodyAsString();
}catch (Exception e){
//error fixing code
}
我希望能够用实际的HttpResponse对象替换responseAsString,但是我无法找到下载jar文件的资源。
如果你可以包含下载你建议的对象的.jar文件的链接的链接,那就太棒了。
谢谢!
答案 0 :(得分:0)
这可能有点矫枉过正,但我会看一下开源项目GWT https://developers.google.com/web-toolkit/
他们有一个示例应用程序,它可以与服务器进行通信,您可以看到它是如何工作的。
祝你好运答案 1 :(得分:0)
您可以在http://oaklandsoftware.com/product_http/compare.html
找到Java HTTP客户端比较你的必需品似乎是基本的,所以它们应该得到任何库的支持,除了关于HttpResponse对象的最后一个,但是使用Apache库你可以得到来自HttpMethod的响应的正文,页眉和页脚,这就足够了。其他图书馆应该提供类似的东西,我想。
答案 2 :(得分:0)
您可以使用Apache Default Http Client版本4执行所有请求 您可以将响应字符串修改为任何有效的HTTPResponse对象。 您可以更改请求和响应中的所有标头,包括引用标头。 你应该只知道能够替换它的标题名称。
图书馆位于http://hc.apache.org/httpcomponents-client-ga/
请确保您获得版本4.
有关如何使用它的指南,请访问:http://hc.apache.org/httpcomponents-client-ga/tutorial/html/
你可以找到你可以使用的请求和响应标题列表:google搜索关键字“http response headers” - wiki文章给出的第一个链接。
享受!!