`

HttpClient的相关例

阅读更多

HttpClient的相关例子

文章分类:Java编程

摘自 :http://hi.baidu.com/kinsonhe/blog/item/4a77d411ff00288a6538db96.html

1、HttpClient使用GET方式通过代理服务器读取页面的例子

Java代码 复制代码
  1. import java.io.BufferedReader;   
  2. import java.io.InputStreamReader;   
  3. import org.apache.http.HttpEntity;   
  4. import org.apache.http.HttpHost;   
  5. import org.apache.http.HttpResponse;   
  6. import org.apache.http.client.methods.HttpGet;   
  7. import org.apache.http.conn.params.ConnRoutePNames;   
  8. import org.apache.http.impl.client.DefaultHttpClient;   
  9.   
  10. /**  
  11. * HttpClient使用GET方式通过代理服务器读取页面的例子。  
  12.  
  13. * @author JAVA世纪网(java2000.net, laozizhu.com)  
  14. */  
  15. public class HttpClientGet {   
  16. public static void main(String[] args) throws Exception {   
  17. DefaultHttpClient httpclient = new DefaultHttpClient();   
  18. // 访问的目标站点,端口和协议   
  19. HttpHost targetHost = new HttpHost("www.java2000.net");   
  20. // 代理的设置   
  21. HttpHost proxy = new HttpHost("10.60.8.20"8080);   
  22. httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);   
  23. // 目标地址   
  24. HttpGet httpget = new HttpGet("/");   
  25. System.out.println("目标: " + targetHost);   
  26. System.out.println("请求: " + httpget.getRequestLine());   
  27. // 执行   
  28. HttpResponse response = httpclient.execute(targetHost, httpget);   
  29. HttpEntity entity = response.getEntity();   
  30. System.out.println("----------------------------------------");   
  31. System.out.println(response.getStatusLine());   
  32. if (entity != null) {   
  33. System.out.println("Response content length: " + entity.getContentLength());   
  34. }   
  35. // 显示结果   
  36. BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"));   
  37. String line = null;   
  38. while ((line = reader.readLine()) != null) {   
  39. System.out.println(line);   
  40. }   
  41. if (entity != null) {   
  42. entity.consumeContent();   
  43. }   
  44. }   
  45. }  
import java.io.BufferedReader;
import java.io.InputStreamReader;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.impl.client.DefaultHttpClient;

/**
* HttpClient使用GET方式通过代理服务器读取页面的例子。
* 
* @author JAVA世纪网(java2000.net, laozizhu.com)
*/
public class HttpClientGet {
public static void main(String[] args) throws Exception {
DefaultHttpClient httpclient = new DefaultHttpClient();
// 访问的目标站点,端口和协议
HttpHost targetHost = new HttpHost("www.java2000.net");
// 代理的设置
HttpHost proxy = new HttpHost("10.60.8.20", 8080);
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
// 目标地址
HttpGet httpget = new HttpGet("/");
System.out.println("目标: " + targetHost);
System.out.println("请求: " + httpget.getRequestLine());
// 执行
HttpResponse response = httpclient.execute(targetHost, httpget);
HttpEntity entity = response.getEntity();
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
}
// 显示结果
BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
if (entity != null) {
entity.consumeContent();
}
}
}

 2、HttpClient 4 使用POST方式提交普通表单数据的例子

Java代码 复制代码
  1. import java.io.BufferedReader;   
  2. import java.io.InputStreamReader;   
  3. import org.apache.http.HttpEntity;   
  4. import org.apache.http.HttpHost;   
  5. import org.apache.http.HttpResponse;   
  6. import org.apache.http.client.methods.HttpPost;   
  7. import org.apache.http.conn.params.ConnRoutePNames;   
  8. import org.apache.http.entity.StringEntity;   
  9. import org.apache.http.impl.client.DefaultHttpClient;   
  10.   
  11. /**  
  12. * HttpClient 4 使用POST方式提交普通表单数据的例子.  
  13.  
  14. * @author JAVA世纪网(java2000.net, laozizhu.com)  
  15. */  
  16. public class HttpClientPost {   
  17. public static void main(String[] args) throws Exception {   
  18. DefaultHttpClient httpclient = new DefaultHttpClient();   
  19. // 代理的设置   
  20. HttpHost proxy = new HttpHost("10.60.8.20"8080);   
  21. httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);   
  22. // 目标地址   
  23. HttpPost httppost = new HttpPost("http://www.java2000.net/login.jsp");   
  24. System.out.println("请求: " + httppost.getRequestLine());   
  25. // 构造最简单的字符串数据   
  26. StringEntity reqEntity = new StringEntity("username=test&password=test");   
  27. // 设置类型   
  28. reqEntity.setContentType("application/x-www-form-urlencoded");   
  29. // 设置请求的数据   
  30. httppost.setEntity(reqEntity);   
  31. // 执行   
  32. HttpResponse response = httpclient.execute(httppost);   
  33. HttpEntity entity = response.getEntity();   
  34. System.out.println("----------------------------------------");   
  35. System.out.println(response.getStatusLine());   
  36. if (entity != null) {   
  37. System.out.println("Response content length: " + entity.getContentLength());   
  38. }   
  39. // 显示结果   
  40. BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"));   
  41. String line = null;   
  42. while ((line = reader.readLine()) != null) {   
  43. System.out.println(line);   
  44. }   
  45. if (entity != null) {   
  46. entity.consumeContent();   
  47. }   
  48. }   
  49. }  
import java.io.BufferedReader;
import java.io.InputStreamReader;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;

/**
* HttpClient 4 使用POST方式提交普通表单数据的例子.
* 
* @author JAVA世纪网(java2000.net, laozizhu.com)
*/
public class HttpClientPost {
public static void main(String[] args) throws Exception {
DefaultHttpClient httpclient = new DefaultHttpClient();
// 代理的设置
HttpHost proxy = new HttpHost("10.60.8.20", 8080);
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
// 目标地址
HttpPost httppost = new HttpPost("http://www.java2000.net/login.jsp");
System.out.println("请求: " + httppost.getRequestLine());
// 构造最简单的字符串数据
StringEntity reqEntity = new StringEntity("username=test&password=test");
// 设置类型
reqEntity.setContentType("application/x-www-form-urlencoded");
// 设置请求的数据
httppost.setEntity(reqEntity);
// 执行
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
}
// 显示结果
BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
if (entity != null) {
entity.consumeContent();
}
}
}

 3、HttpClient 4.0通过代理访问Https的代码例子

Java代码 复制代码
  1. import java.io.BufferedReader;   
  2. import java.io.InputStreamReader;   
  3. import org.apache.http.HttpEntity;   
  4. import org.apache.http.HttpHost;   
  5. import org.apache.http.HttpResponse;   
  6. import org.apache.http.auth.AuthScope;   
  7. import org.apache.http.auth.UsernamePasswordCredentials;   
  8. import org.apache.http.client.methods.HttpGet;   
  9. import org.apache.http.conn.params.ConnRoutePNames;   
  10. import org.apache.http.impl.client.DefaultHttpClient;   
  11.   
  12. /**  
  13. * HttpClient 4.0通过代理访问Https的代码例子。  
  14.  
  15. * @author JAVA世纪网(java2000.net, laozizhu.com)  
  16. */  
  17. public class HttpsProxyGet {   
  18. public static void main(String[] args) throws Exception {   
  19. DefaultHttpClient httpclient = new DefaultHttpClient();   
  20. // 认证的数据   
  21. // 我这里是瞎写的,请根据实际情况填写   
  22. httpclient.getCredentialsProvider().setCredentials(new AuthScope("10.60.8.20"8080),   
  23. new UsernamePasswordCredentials("username""password"));   
  24. // 访问的目标站点,端口和协议   
  25. HttpHost targetHost = new HttpHost("www.google.com"443"https");   
  26. // 代理的设置   
  27. HttpHost proxy = new HttpHost("10.60.8.20"8080);   
  28. httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);   
  29. // 目标地址   
  30. HttpGet httpget = new HttpGet("/adsense/login/zh_CN/?");   
  31. System.out.println("目标: " + targetHost);   
  32. System.out.println("请求: " + httpget.getRequestLine());   
  33. System.out.println("代理: " + proxy);   
  34. // 执行   
  35. HttpResponse response = httpclient.execute(targetHost, httpget);   
  36. HttpEntity entity = response.getEntity();   
  37. System.out.println("----------------------------------------");   
  38. System.out.println(response.getStatusLine());   
  39. if (entity != null) {   
  40. System.out.println("Response content length: " + entity.getContentLength());   
  41. }   
  42. // 显示结果   
  43. BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"));   
  44. String line = null;   
  45. while ((line = reader.readLine()) != null) {   
  46. System.out.println(line);   
  47. }   
  48. if (entity != null) {   
  49. entity.consumeContent();   
  50. }   
  51. }   
  52. }  
import java.io.BufferedReader;
import java.io.InputStreamReader;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.impl.client.DefaultHttpClient;

/**
* HttpClient 4.0通过代理访问Https的代码例子。
* 
* @author JAVA世纪网(java2000.net, laozizhu.com)
*/
public class HttpsProxyGet {
public static void main(String[] args) throws Exception {
DefaultHttpClient httpclient = new DefaultHttpClient();
// 认证的数据
// 我这里是瞎写的,请根据实际情况填写
httpclient.getCredentialsProvider().setCredentials(new AuthScope("10.60.8.20", 8080),
new UsernamePasswordCredentials("username", "password"));
// 访问的目标站点,端口和协议
HttpHost targetHost = new HttpHost("www.google.com", 443, "https");
// 代理的设置
HttpHost proxy = new HttpHost("10.60.8.20", 8080);
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
// 目标地址
HttpGet httpget = new HttpGet("/adsense/login/zh_CN/?");
System.out.println("目标: " + targetHost);
System.out.println("请求: " + httpget.getRequestLine());
System.out.println("代理: " + proxy);
// 执行
HttpResponse response = httpclient.execute(targetHost, httpget);
HttpEntity entity = response.getEntity();
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
}
// 显示结果
BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
if (entity != null) {
entity.consumeContent();
}
}
}

 4、HttpClient读取页面的使用例子

Java代码 复制代码
  1. package com.laozizhu.apache.httpclient;   
  2.   
  3. import java.net.Socket;   
  4.   
  5. import org.apache.http.ConnectionReuseStrategy;   
  6. import org.apache.http.Header;   
  7. import org.apache.http.HttpHost;   
  8. import org.apache.http.HttpResponse;   
  9. import org.apache.http.HttpVersion;   
  10. import org.apache.http.impl.DefaultConnectionReuseStrategy;   
  11. import org.apache.http.impl.DefaultHttpClientConnection;   
  12. import org.apache.http.message.BasicHttpRequest;   
  13. import org.apache.http.params.BasicHttpParams;   
  14. import org.apache.http.params.HttpParams;   
  15. import org.apache.http.params.HttpProtocolParams;   
  16. import org.apache.http.protocol.BasicHttpContext;   
  17. import org.apache.http.protocol.BasicHttpProcessor;   
  18. import org.apache.http.protocol.ExecutionContext;   
  19. import org.apache.http.protocol.HttpContext;   
  20. import org.apache.http.protocol.HttpRequestExecutor;   
  21. import org.apache.http.protocol.RequestConnControl;   
  22. import org.apache.http.protocol.RequestContent;   
  23. import org.apache.http.protocol.RequestExpectContinue;   
  24. import org.apache.http.protocol.RequestTargetHost;   
  25. import org.apache.http.protocol.RequestUserAgent;   
  26. import org.apache.http.util.EntityUtils;   
  27.   
  28. /**  
  29. * HttpClient读取页面的使用例子  
  30. * @author 老紫竹(java2000.net)  
  31. *  
  32. */  
  33. public class HttpGet {   
  34. public static void main(String[] args) throws Exception {   
  35.   
  36.     HttpParams params = new BasicHttpParams();   
  37. // HTTP 协议的版本,1.1/1.0/0.9   
  38. HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);   
  39. // 字符集   
  40. HttpProtocolParams.setContentCharset(params, "UTF-8");   
  41. // 伪装的浏览器类型   
  42. // IE7 是    
  43. // Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)   
  44. //   
  45. // Firefox3.03   
  46. // Mozilla/5.0 (Windows; U; Windows NT 5.2; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3   
  47. //   
  48. HttpProtocolParams.setUserAgent(params, "HttpComponents/1.1");   
  49. HttpProtocolParams.setUseExpectContinue(params, true);   
  50.   
  51.     BasicHttpProcessor httpproc = new BasicHttpProcessor();   
  52.   
  53.     httpproc.addInterceptor(new RequestContent());   
  54. httpproc.addInterceptor(new RequestTargetHost());   
  55.   
  56.     httpproc.addInterceptor(new RequestConnControl());   
  57. httpproc.addInterceptor(new RequestUserAgent());   
  58. httpproc.addInterceptor(new RequestExpectContinue());   
  59.   
  60.     HttpRequestExecutor httpexecutor = new HttpRequestExecutor();   
  61.   
  62.     HttpContext context = new BasicHttpContext(null);   
  63. HttpHost host = new HttpHost("www.java2000.net"80);   
  64.   
  65.     DefaultHttpClientConnection conn = new DefaultHttpClientConnection();   
  66. ConnectionReuseStrategy connStrategy = new DefaultConnectionReuseStrategy();   
  67.   
  68.     context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);   
  69. context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, host);   
  70.   
  71.     try {   
  72.   
  73.       String[] targets = { "/""/help.jsp" };   
  74.   
  75.       for (int i = 0; i < targets.length; i++) {   
  76. if (!conn.isOpen()) {   
  77. Socket socket = new Socket(host.getHostName(), host.getPort());   
  78. conn.bind(socket, params);   
  79. }   
  80. BasicHttpRequest request = new BasicHttpRequest("GET", targets[i]);   
  81. System.out.println(">> Request URI: " + request.getRequestLine().getUri());   
  82.   
  83.         context.setAttribute(ExecutionContext.HTTP_REQUEST, request);   
  84. request.setParams(params);   
  85. httpexecutor.preProcess(request, httpproc, context);   
  86. HttpResponse response = httpexecutor.execute(request, conn, context);   
  87. response.setParams(params);   
  88. httpexecutor.postProcess(response, httpproc, context);   
  89.   
  90.         // 返回码   
  91. System.out.println("<< Response: " + response.getStatusLine());   
  92. // 返回的文件头信息   
  93. Header[] hs = response.getAllHeaders();   
  94. for (Header h : hs) {   
  95. System.out.println(h.getName() + ":" + h.getValue());   
  96. }   
  97. // 输出主体信息   
  98. System.out.println(EntityUtils.toString(response.getEntity()));   
  99. System.out.println("==============");   
  100. if (!connStrategy.keepAlive(response, context)) {   
  101. conn.close();   
  102. else {   
  103. System.out.println("Connection kept alive...");   
  104. }   
  105. }   
  106. finally {   
  107. conn.close();   
  108. }   
  109. }   
  110. }  
package com.laozizhu.apache.httpclient;

import java.net.Socket;

import org.apache.http.ConnectionReuseStrategy;
import org.apache.http.Header;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
import org.apache.http.impl.DefaultConnectionReuseStrategy;
import org.apache.http.impl.DefaultHttpClientConnection;
import org.apache.http.message.BasicHttpRequest;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.BasicHttpProcessor;
import org.apache.http.protocol.ExecutionContext;
import org.apache.http.protocol.HttpContext;
import org.apache.http.protocol.HttpRequestExecutor;
import org.apache.http.protocol.RequestConnControl;
import org.apache.http.protocol.RequestContent;
import org.apache.http.protocol.RequestExpectContinue;
import org.apache.http.protocol.RequestTargetHost;
import org.apache.http.protocol.RequestUserAgent;
import org.apache.http.util.EntityUtils;

/**
* HttpClient读取页面的使用例子
* @author 老紫竹(java2000.net)
*
*/
public class HttpGet {
public static void main(String[] args) throws Exception {

    HttpParams params = new BasicHttpParams();
// HTTP 协议的版本,1.1/1.0/0.9
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
// 字符集
HttpProtocolParams.setContentCharset(params, "UTF-8");
// 伪装的浏览器类型
// IE7 是 
// Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)
//
// Firefox3.03
// Mozilla/5.0 (Windows; U; Windows NT 5.2; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3
//
HttpProtocolParams.setUserAgent(params, "HttpComponents/1.1");
HttpProtocolParams.setUseExpectContinue(params, true);

    BasicHttpProcessor httpproc = new BasicHttpProcessor();

    httpproc.addInterceptor(new RequestContent());
httpproc.addInterceptor(new RequestTargetHost());

    httpproc.addInterceptor(new RequestConnControl());
httpproc.addInterceptor(new RequestUserAgent());
httpproc.addInterceptor(new RequestExpectContinue());

    HttpRequestExecutor httpexecutor = new HttpRequestExecutor();

    HttpContext context = new BasicHttpContext(null);
HttpHost host = new HttpHost("www.java2000.net", 80);

    DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
ConnectionReuseStrategy connStrategy = new DefaultConnectionReuseStrategy();

    context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, host);

    try {

      String[] targets = { "/", "/help.jsp" };

      for (int i = 0; i < targets.length; i++) {
if (!conn.isOpen()) {
Socket socket = new Socket(host.getHostName(), host.getPort());
conn.bind(socket, params);
}
BasicHttpRequest request = new BasicHttpRequest("GET", targets[i]);
System.out.println(">> Request URI: " + request.getRequestLine().getUri());

        context.setAttribute(ExecutionContext.HTTP_REQUEST, request);
request.setParams(params);
httpexecutor.preProcess(request, httpproc, context);
HttpResponse response = httpexecutor.execute(request, conn, context);
response.setParams(params);
httpexecutor.postProcess(response, httpproc, context);

        // 返回码
System.out.println("<< Response: " + response.getStatusLine());
// 返回的文件头信息
Header[] hs = response.getAllHeaders();
for (Header h : hs) {
System.out.println(h.getName() + ":" + h.getValue());
}
// 输出主体信息
System.out.println(EntityUtils.toString(response.getEntity()));
System.out.println("==============");
if (!connStrategy.keepAlive(response, context)) {
conn.close();
} else {
System.out.println("Connection kept alive...");
}
}
} finally {
conn.close();
}
}
}

 5、httpclient中文乱码解决

Java代码 复制代码
  1. httpclient默认使用ISO-8859-1读取http响应的内容,如果内容中包含汉字的话就得动用丑陋的new String(str.getBytes("ISO-8859-1"),"GBK");语句了。    
  2.   
  3. 解决办法就是使用以下配置。   
  4.   
  5. private static final String CONTENT_CHARSET = "GBK";// httpclient读取内容时使用的字符集   
  6.   
  7. HttpClient client = new HttpClient();   
  8. client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, CONTENT_CHARSET);  
httpclient默认使用ISO-8859-1读取http响应的内容,如果内容中包含汉字的话就得动用丑陋的new String(str.getBytes("ISO-8859-1"),"GBK");语句了。 

解决办法就是使用以下配置。

private static final String CONTENT_CHARSET = "GBK";// httpclient读取内容时使用的字符集

HttpClient client = new HttpClient();
client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, CONTENT_CHARSET);

 6、HttpClient 4处理文件上传的例子(MultipartEntity)

Java代码 复制代码
  1. import java.io.File;   
  2. import org.apache.http.HttpEntity;   
  3. import org.apache.http.HttpResponse;   
  4. import org.apache.http.client.HttpClient;   
  5. import org.apache.http.client.methods.HttpPost;   
  6. import org.apache.http.entity.mime.MultipartEntity;   
  7. import org.apache.http.entity.mime.content.FileBody;   
  8. import org.apache.http.entity.mime.content.StringBody;   
  9. import org.apache.http.impl.client.DefaultHttpClient;   
  10.   
  11. /**  
  12. * HttpClient 4处理文件上传的例子(MultipartEntity).<br>  
  13. * 需要 James Mime4j 0.5的版本,0.6的不行。  
  14.  
  15. * @author JAVA世纪网(java2000.net, laozizhu.com)  
  16. */  
  17. public class HttpClientMultipartFormPost {   
  18. public static void main(String[] args) throws Exception {   
  19. HttpClient httpclient = new DefaultHttpClient();   
  20. HttpPost httppost = new HttpPost("http://localhost");   
  21. // 一个本地的文件   
  22. FileBody bin = new FileBody(new File("d:/BIMG1181.JPG"));   
  23. // 一个字符串   
  24. StringBody comment = new StringBody("A binary file of some kind");   
  25. // 多部分的实体   
  26. MultipartEntity reqEntity = new MultipartEntity();   
  27. // 增加   
  28. reqEntity.addPart("bin", bin);   
  29. reqEntity.addPart("comment", comment);   
  30. // 设置   
  31. httppost.setEntity(reqEntity);   
  32. System.out.println("执行: " + httppost.getRequestLine());   
  33. HttpResponse response = httpclient.execute(httppost);   
  34. HttpEntity resEntity = response.getEntity();   
  35. System.out.println("----------------------------------------");   
  36. System.out.println(response.getStatusLine());   
  37. if (resEntity != null) {   
  38. System.out.println("返回长度: " + resEntity.getContentLength());   
  39. }   
  40. if (resEntity != null) {   
  41. resEntity.consumeContent();   
  42. }   
  43. }   
  44. }  

 

httpclient GetMethod 传参数 支持中文

 

    private static HttpMethod getGetMethod()throws Exception{
     String propertyValue1 = "北京";
     String propertyValue2= "大厦";
     String parameterValue1 = URLEncoder.encode(propertyValue1,"gbk");
     String parameterValue2 = URLEncoder.encode(propertyValue2,"gbk");
    
       return new GetMethod("/jquery/index.action?username="+parameterValue1+"&password="+parameterValue2);
    }


    String result = new String(method.getResponseBodyAsString().getBytes("iso-8859-1"));
     System.out.println(result);   

这样一处理 就解决了问题,研究了半天才搞定,很简单的。

 

 

 

个人签名

-------------------------------------

 

图盾 淘宝保护 保护图片 图片防盗

分享到:
评论

相关推荐

    httpClient调用wcf

    3. **HttpClient调用**:在Java端,引入HttpClient库及相关依赖(如本例中的`httpclient-4.2.3.jar`等)。使用HttpClient,你可以创建一个`HttpClient`实例,然后构建`HttpGet`或`HttpPost`对象,设置请求URL(对应...

    httpclient.post例子

    通过`java_httpclient_post`这个文件名,我们可以推测其中可能包含了完整的示例代码或者相关教程,你可以参考这个文件来实践和学习HttpClient的POST请求使用。记住,实践是检验理论的最好方式,尝试运行这个例子,看...

    httpclient post方式发送请求

    首先,为了使用HTTPClient库,我们需要导入Apache HttpClient相关的JAR包。在提供的文件列表中,"HttpClientJar"很可能包含了Apache HttpClient的库文件。通常,这个JAR包可能包含如`httpclient`, `httpcore`, `...

    httpclient使用教程

    在开始使用HttpClient之前,需确保已正确安装并配置相关组件: 1. **下载HttpClient**:访问官方页面`http://jakarta.apache.org/commons/httpclient/downloads.html`下载最新版本。 2. **集成Commons Logging**:...

    httpclient 获取技术博客列表

    标题中的“httpclient 获取技术博客列表”指的是使用Apache HttpClient库来获取网络上的技术博客列表。HttpClient是一个Java库,它提供了一种丰富的API来执行HTTP请求,包括GET、POST等方法,用于从网页抓取数据。在...

    通过HTTPClient获取网络资源

    // 进行节点相关的操作 } ``` 在处理XML时,我们通常会根据需求选择合适的解析器,DOM解析器适合处理小型XML文档,因为它会将整个文档加载到内存中;SAX和StaX则适用于大型XML文档,它们是事件驱动的,仅需遍历...

    httpclient所需jar包

    在本例中,提供的压缩包文件名为"**httpclient-4.5所需jar包**",这表明我们关注的是HttpClient的4.5版本。HttpClient 4.5是一个稳定且功能完善的版本,包含了大量优化和改进,支持了HTTP/2和SSL/TLS的最新特性。 ...

    httpclient3 自动登陆淘宝, 开心网

    HttpClient是一个强大的HTTP客户端API,它允许开发者模拟浏览器行为,发送HTTP请求并接收响应,这对于自动化测试、网页抓取或者在本例中的网站登录等任务非常有用。 在描述中提到的“NULL 博文链接:...

    Java爬虫Jsoup+httpclient获取动态生成的数据

    在Web开发和数据抓取领域,Java爬虫技术是实现网页自动化信息提取的重要手段。...但需要注意的是,爬取数据时应遵守网站的robots.txt协议以及相关法律法规,合理使用爬虫,避免对目标网站造成过大的访问压力。

    Android-HttpClient工具类简单轻松的实现getpostput和delete请求

    首先,我们需要引入`HttpClient`的相关依赖。在Android Studio中,如果使用的是旧版本的Android SDK(低于API 22),系统自带了`HttpClient`库。但自API 22起,`HttpClient`被标记为过时,开发者应转向其他替代方案...

    android httpclient 访问服务器 获取json数据

    首先,你需要在Android项目中引入HTTPClient的相关依赖。由于Android API 23及以上版本已不再支持Apache HTTPClient,因此可能需要手动添加依赖。在你的`build.gradle`文件的`dependencies`块中,添加如下代码: ``...

    使用 HttpClient 和 HtmlParser 实现简易爬虫

    在本例中,我们关注 GET 请求,即通过 GetMethod 对象指定URL,并设置请求超时。之后,使用 HttpClient 执行该方法,检查响应状态码,如果响应正常,我们可以读取并处理响应内容。最后,别忘了释放连接以避免资源...

    HttpClientDemo

    首先,我们需要引入HttpClient的相关依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.apache.httpcomponents &lt;artifactId&gt;httpclient &lt;version&gt;4.5.13 ``` 接下来,我们将逐步...

    java httpClient status 400错误的Header中字符不合法(csdn)————程序.pdf

    在本例中,将定时任务的名称改为英文解决了问题,但这实际上应该是ARMS插件的一个bug,它应该自动处理非ASCII字符,将其编码后再放入Header。 总结来说,这个Java HttpClient 400错误的问题提醒我们: 1. 在使用...

    jsp 中HttpClient中的POST方法实例详解

    在JSP中使用HttpClient进行POST请求,首先要导入相关的依赖库,如Apache HttpClient库。然后,你可以创建一个`PostMethod`对象,指定目标URL。在本例中,URL是"http://www.newsmth.NET/bbslogin2.PHP",这是一个登录...

    2015-9 httpclientdemo 2017.3.15 --谷歌浏览器插件【重要】

    描述中提到的“--谷歌浏览器插件【重要】”暗示这个项目可能包含了一个与谷歌浏览器(Google Chrome)相关的插件,这个插件可能使用了HttpClient库来与服务器进行通信。浏览器插件通常是由JavaScript、HTML和CSS编写...

    HttpClient + Jsoup 模拟登陆,解析HTML,信息筛选(广工图书馆)

    本主题将深入讲解如何使用Apache HttpClient库和Jsoup库实现这个目标,以广工图书馆网站为例。这两个库都是Java开发者常用来处理HTTP请求和解析HTML文档的强大工具。 首先,让我们了解**HttpClient**。HttpClient是...

    JSP开发中Apache-HTTPClient 用户验证的实例详解

    此外,实例代码中的LoggerFactory、Logger、CloseableHttpResponse等都属于日志框架和Apache HTTP Components库中的组件,需要在项目中正确配置相关依赖。 希望通过本文的详细介绍和代码实例,您能够更好地理解在...

    java 发送https 请求 证书

    这里以Apache HttpClient为例: 1. **引入依赖**:在你的项目中添加Apache HttpClient库,如果是Maven项目,在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.apache.httpcomponents &lt;artifactId&gt;...

    httpclient模拟post请求json封装表单数据的实现方法

    在代码中,我们首先导入HttpClient相关的包,并创建一个HttpPost对象,这个对象代表了一个HTTP POST请求,它需要一个URL参数来指明请求的目标地址。接下来,我们通过HttpClients创建一个默认的HttpClient实例,用于...

Global site tag (gtag.js) - Google Analytics