httpclient基本应用【L】
来源:互联网 发布:国债期货模拟软件 编辑:程序博客网 时间:2024/06/05 09:17
HttpClient在HttpURLConnection的升级
参考:http://blog.csdn.net/wangpeng047/article/details/19624529/
MAVEN
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.lxl.test</groupId> <artifactId>httpclient</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>httpclient Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- httpClient --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.3.6</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>4.3.6</version></dependency> <!-- htmlunit <dependency> <groupId>net.sourceforge.htmlunit</groupId> <artifactId>htmlunit</artifactId> <version>2.15</version></dependency> --> </dependencies> <build> <finalName>httpclient</finalName> </build></project>
代码
package com.lxl.httpclient;import java.io.File;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.Set;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.ParseException;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.client.methods.HttpUriRequest;import org.apache.http.entity.ContentType;import org.apache.http.entity.mime.MultipartEntityBuilder;import org.apache.http.entity.mime.content.FileBody;import org.apache.http.entity.mime.content.StringBody;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.message.BasicNameValuePair;import org.apache.http.protocol.HTTP;import org.apache.http.util.EntityUtils;public class HttpClientTest {public static String post(String url, Map<String, String> params) {//DefaultHttpClient httpclient = new DefaultHttpClient();CloseableHttpClient httpclient = HttpClients.createDefault(); String body = null;try {HttpPost post = postForm(url, params);body = invoke(httpclient, post);} catch (Exception e) {e.printStackTrace();} finally {try {httpclient.close();} catch (Exception e) {e.printStackTrace();}}return body;}private static HttpPost postForm(String url, Map<String, String> params) {HttpPost httpost = new HttpPost(url);List<NameValuePair> nvps = new ArrayList<NameValuePair>();Set<String> keySet = params.keySet();for (String key : keySet) {nvps.add(new BasicNameValuePair(key, params.get(key)));}try {httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));} catch (UnsupportedEncodingException e) {e.printStackTrace();}return httpost;}private static String invoke(HttpClient httpclient,HttpUriRequest httpost) {HttpResponse response = sendRequest(httpclient, httpost);String body = paseResponse(response);return body;}private static HttpResponse sendRequest(HttpClient httpclient,HttpUriRequest httpost) {HttpResponse response = null;try {response = httpclient.execute(httpost);} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return response;}private static String paseResponse(HttpResponse response) {HttpEntity entity = response.getEntity();//String charset = EntityUtils.getContentCharSet(entity);String body = null;try {body = EntityUtils.toString(entity, "UTF-8");} catch (ParseException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return body;}public void get(String url) { CloseableHttpClient httpclient = HttpClients.createDefault(); try { // 创建httpget. HttpGet httpget = new HttpGet(url); System.out.println("executing request " + httpget.getURI()); // 执行get请求. CloseableHttpResponse response = httpclient.execute(httpget); try { // 获取响应实体 HttpEntity entity = response.getEntity(); System.out.println("--------------------------------------"); // 打印响应状态 System.out.println(response.getStatusLine()); if (entity != null) { // 打印响应内容长度 System.out.println("Response content length: " + entity.getContentLength()); // 打印响应内容 System.out.println("Response content: " + EntityUtils.toString(entity)); } System.out.println("------------------------------------"); } finally { response.close(); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { // 关闭连接,释放资源 try { httpclient.close(); } catch (IOException e) { e.printStackTrace(); } } }/** * 上传文件 */ public void upload(String url, File file) { CloseableHttpClient httpclient = HttpClients.createDefault(); try { HttpPost httppost = new HttpPost(url); FileBody bin = new FileBody(file); StringBody comment = new StringBody("A binary file of some kind", ContentType.TEXT_PLAIN); HttpEntity reqEntity = MultipartEntityBuilder.create().addPart("bin", bin).addPart("comment", comment).build(); httppost.setEntity(reqEntity); System.out.println("executing request " + httppost.getRequestLine()); CloseableHttpResponse response = httpclient.execute(httppost); try { System.out.println("----------------------------------------"); System.out.println(response.getStatusLine()); HttpEntity resEntity = response.getEntity(); if (resEntity != null) { System.out.println("Response content length: " + resEntity.getContentLength()); } EntityUtils.consume(resEntity); } finally { response.close(); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { httpclient.close(); } catch (IOException e) { e.printStackTrace(); } } } }
阅读全文
0 0
- httpclient基本应用【L】
- GSON基本应用【L】
- CXF采用HttpClient实现基本的RESTFul应用之服务端
- httpclient 应用
- httpClient应用
- httpClient应用
- httpclient应用
- HttpClient应用
- l数据库基本语句
- 基本l/O操作
- HttpURLConnection基本使用【L】
- HttpClient的基本使用
- HttpClient基本用法
- httpclient基本用法
- Android HttpClient基本使用方法
- Android HttpClient基本使用方法
- Android HttpClient基本使用方法
- HttpClient的基本操作
- 关于不规则多块的游戏小地图逻辑
- UVa1588--Kickdown--换低挡装置
- nyoj29—求转置矩阵问题
- C#中static readonly const
- Gradient And Karush-Kuhn-Tucker Conditions
- httpclient基本应用【L】
- Android BigDecimal对金额进行精确计算
- Thrift——入门Demo(Java)
- nyoj-325 zb的生日
- [bzoj1180][CROATIAN2009]OTOCI Link-Cut-Tree
- JMeter-认识GUI界面基本元素及作用
- C语言:函数
- js三种弹出框的方式
- Ignatius and the Princess I(bfs+优先队列+输出路径)