0

我正在尝试编写一个能够通过 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
}

我希望能够将 responseAsString 替换为实际的 HttpResponse 对象,但我无法找到下载 jar 文件的资源。

如果您可以包含有关从何处下载您建议的对象的 .jar 文件的链接,那就太好了。

谢谢!

4

3 回答 3

0

这可能有点矫枉过正,但我​​会看看开源项目 GWT https://developers.google.com/web-toolkit/

他们有一个与服务器通信的示例应用程序,您可以看到它是如何工作的。

祝你好运

于 2012-08-30T15:25:25.950 回答
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 响应标头”给出的第一个链接 - wiki 文章。

享受!!

于 2012-08-30T16:40:11.730 回答
0

您可以在http://oaklandsoftware.com/product_http/compare.html找到 Java HTTP 客户端比较

您的要求似乎很基本,因此任何库都应该支持它们,除了关于 HttpResponse 对象的最后一个,但使用 Apache 库您可以从 HttpMethod 获取响应的正文、页眉和页脚,这已经足够了。我想其他图书馆应该提供类似的东西。

于 2012-08-30T15:32:02.957 回答