1. import org.apache.commons.httpclient.HttpClient;
2. import org.apache.commons.httpclient.HttpMethod;
3. import org.apache.commons.httpclient.HttpStatus;
4. import org.apache.commons.httpclient.URIException;
5. import org.apache.commons.httpclient.methods.GetMethod;
6. import org.apache.commons.httpclient.methods.PostMethod;
7. import org.apache.commons.httpclient.params.HttpMethodParams;
8. import org.apache.commons.httpclient.util.URIUtil;
9. import org.apache.commons.lang.StringUtils;
10. import org.apache.commons.logging.Log;
11. import org.apache.commons.logging.LogFactory;
12.
13. import java.io.BufferedReader;
14. import java.io.IOException;
15. import java.io.InputStreamReader;
16. import java.util.Map;
17.
18. /**
19. * HTTP工具箱
20. *
21. * @author leizhimin 2009-6-19 16:36:18
22. */
23. public final class HttpTookit {
24. private static Log log = LogFactory.getLog(HttpTookit.class);
25.
26. /**
27. * 执行一个HTTP GET请求,返回请求响应的HTML
28. *
29. * @param url 请求的URL地址
30. * @param queryString 请求的查询参数,可以为null
31. * @param charset 字符集
32. * @param pretty 是否美化
33. * @return 返回请求响应的HTML
34. */
35. public static String doGet(String url, String queryString, String charset, boolean pretty) {
36. StringBuffer response = new StringBuffer();
37. HttpClient client = new HttpClient();
38. HttpMethod method = new GetMethod(url);
39. try {
40. if (StringUtils.isNotBlank(queryString))
41. //对get请求参数做了http请求默认编码,好像没有任何问题,汉字编码后,就成为%式样的字符串
42. method.setQueryString(URIUtil.encodeQuery(queryString));
43. client.executeMethod(method);
44. if (method.getStatusCode() == HttpStatus.SC_OK) {
45. BufferedReader reader = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream(), charset));
46. String line;
47. while ((line = reader.readLine()) != null) {
48. if (pretty)
49. response.append(line).append(System.getProperty("line.separator"));
50. else
51. response.append(line);
52. }
53. reader.close();
54. }
55. } catch (URIException e) {
56. log.error("执行HTTP Get请求时,编码查询字符串“" + queryString + "”发生异常!", e);
57. } catch (IOException e) {
58. log.error("执行HTTP Get请求" + url + "时,发生异常!", e);
59. } finally {
60. method.releaseConnection();
61. }
62. return response.toString();
63. }
64.
65. /**
66. * 执行一个HTTP POST请求,返回请求响应的HTML
67. *
68. * @param url 请求的URL地址
69. * @param params 请求的查询参数,可以为null
70. * @param charset 字符集
71. * @param pretty 是否美化
72. * @return 返回请求响应的HTML
73. */
74. public static String doPost(String url, Map<String, String> params, String charset, boolean pretty) {
75. StringBuffer response = new StringBuffer();
76. HttpClient client = new HttpClient();
77. HttpMethod method = new PostMethod(url);
78. //设置Http Post数据
79. if (params != null) {
80. HttpMethodParams p = new HttpMethodParams();
81. for (Map.Entry<String, String> entry : params.entrySet()) {
82. p.setParameter(entry.getKey(), entry.getValue());
83. }
84. method.setParams(p);
85. }
86. try {
87. client.executeMethod(method);
88. if (method.getStatusCode() == HttpStatus.SC_OK) {
89. BufferedReader reader = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream(), charset));
90. String line;
91. while ((line = reader.readLine()) != null) {
92. if (pretty)
93. response.append(line).append(System.getProperty("line.separator"));
94. else
95. response.append(line);
96. }
97. reader.close();
98. }
99. } catch (IOException e) {
100. log.error("执行HTTP Post请求" + url + "时,发生异常!", e);
101. } finally {
102. method.releaseConnection();
103. }
104. return response.toString();
105. }
106.
107. public static void main(String[] args) {
108. String y = doGet("http://video.sina.com.cn/life/tips.html", null, "GBK", true);
109. System.out.println(y);
110. }
111. }
分享到:
相关推荐
使用HttpClient模拟GET和POST请求,主要涉及以下几个步骤: 1. 创建HttpClient实例:这是所有操作的基础,通过`HttpClientBuilder`或`HttpClients`类可以创建HttpClient对象。 ```java CloseableHttpClient ...
### Java HttpClient 发送GET请求和带有表单参数的POST请求详解 #### 一、概述 在Java编程中,处理HTTP请求是一项常见的需求,特别是在与Web服务进行交互时。Apache HttpClient库提供了一种强大的方法来执行HTTP...
它允许开发者模拟GET和POST等HTTP请求,并可以方便地发送JSON等数据作为请求参数。在本文中,我们将深入探讨如何使用HttpClient进行HTTP请求操作,以及如何处理JSON数据。 首先,我们需要引入HttpClient的相关依赖...
Java 模拟Ajax POST GET 提交代码,实测很好用。
java发送get,post请求,可以实现与后台交互,代码便捷高效,是原生代码,支持并发性;代码结构清晰易懂,容易上手;
java模拟HTTP发送post和get请求工具类,使用httpClient类
以上代码展示了如何在Java后台实现GET和POST请求的基本过程。在实际应用中,我们通常会使用框架如Spring MVC,它提供了更高级的抽象,使得处理HTTP请求变得更加便捷。Spring MVC允许我们定义控制器方法,这些方法...
NULL 博文链接:https://tujunlan.iteye.com/blog/1997745
总的来说,Java模拟HTTP Get和Post请求涉及到网络通信、HTTP协议理解和数据处理等多个方面。在实现校园BBS自动回帖时,除了理解基本的HTTP请求原理,还需要关注特定系统的认证机制、数据格式以及异常处理。这不仅...
JAVA使用HttpClient模拟浏览器GET、POST请求 在本文中,我们将介绍如何使用Apache Commons HttpClient库来模拟浏览器的GET和POST请求。HttpClient库是一个开放源码的项目,是Apache Commons项目的一部分,旨在简化...
在示例代码中,我们使用HttpGet对象来发送POST请求,并指定请求的URL、请求头和请求体。 使用HttpClient发送POST请求可以帮助我们与HTTPS服务器进行交互,但需要注意证书验证过程。使用X509TrustManager可以忽略...
可以使用`HttpURLConnection`或`HttpClient`模拟POST请求,但设置请求方法为GET: ```java HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); ...
Java模拟HTTP GET和POST请求是网络编程中常见的任务,它允许程序模拟用户在浏览器上的行为,例如在论坛上发帖或回帖。本教程将详细介绍如何使用Java来实现这一功能,特别是针对论坛自动回帖的场景。 首先,HTTP GET...
总结,"HttpUtils Java get post 工具类"是用于简化Java中HTTP GET和POST请求的实用工具,它还支持小文件的发送。通过这个工具类,开发者可以快速地进行网络请求,而无需关注底层HTTP连接的复杂性。同时,通过测试类...
测试过程中,可以使用JUnit或其他测试框架来编写单元测试,模拟不同的请求场景,确保HTTP请求能正确发送和接收。测试内容应包括但不限于:正常请求、错误处理、超时设置、连接管理、异步请求等。 总结来说,利用...
Java作为一种多用途的编程语言,提供了丰富的库来帮助开发者模拟HTTP请求,使得我们可以在程序中实现与服务器的交互,比如发送GET、POST请求,获取网页数据,甚至进行文件上传等操作。本教程将详细讲解如何使用Java...
是一个Java 发送http put、delete、 post、 get 请求的工具类。可用在与restful service 进行通讯的代码中。
本篇文章将深入探讨如何使用Java模拟GET/POST登录,特别是涉及验证码处理的情况。我们将主要关注Httpclient库的使用,以及可能涉及到的图像识别技术(OCR)。 首先,让我们了解一下HTTP的基本概念。HTTP是超文本...