我应该使用哪些对象进行HttpClient编程?

时间:2012-08-30 15:18:34

标签: java httpclient httpresponse

我正在尝试编写一个能够通过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文件的链接的链接,那就太棒了。

谢谢!

3 个答案:

答案 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文章给出的第一个链接。

享受!!