HttpClient 的post和get请求
来源:互联网 发布:钻展数据分析 编辑:程序博客网 时间:2024/05/01 07:50
http://blog.csdn.net/wangpeng047/article/details/19624529
package Common;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.security.KeyManagementException;import java.security.KeyStore;import java.security.KeyStoreException;import java.security.NoSuchAlgorithmException;import java.security.cert.CertificateException;import java.util.ArrayList;import java.util.List;import javax.net.ssl.SSLContext;import org.apache.http.HttpEntity;import org.apache.http.NameValuePair;import org.apache.http.ParseException;import org.apache.http.client.ClientProtocolException;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.conn.ssl.SSLConnectionSocketFactory;import org.apache.http.conn.ssl.SSLContexts;import org.apache.http.conn.ssl.TrustSelfSignedStrategy;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.util.EntityUtils;import org.testng.annotations.Test;import org.testng.annotations.BeforeTest;import org.testng.annotations.AfterTest;public class HttpClientTest {@Testpublic void jUnitTest() {System.out.println("222");get();}/** * HttpClient连接SSL */public void ssl() {CloseableHttpClient httpclient = null;try {KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());FileInputStream instream = new FileInputStream(new File("d:\\tomcat.keystore"));try {// 加载keyStore d:\\tomcat.keystore trustStore.load(instream, "123456".toCharArray());} catch (CertificateException e) {e.printStackTrace();} finally {try {instream.close();} catch (Exception ignore) {}}// 相信自己的CA和所有自签名的证书SSLContext sslcontext = SSLContexts.custom().loadTrustMaterial(trustStore, new TrustSelfSignedStrategy()).build();// 只允许使用TLSv1协议SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext, new String[] { "TLSv1" }, null,SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).build();// 创建http请求(get方式)HttpGet httpget = new HttpGet("https://localhost:8443/myDemo/Ajax/serivceJ.action");System.out.println("executing request" + httpget.getRequestLine());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(EntityUtils.toString(entity));EntityUtils.consume(entity);}} finally {response.close();}} catch (ParseException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (KeyManagementException e) {e.printStackTrace();} catch (NoSuchAlgorithmException e) {e.printStackTrace();} catch (KeyStoreException e) {e.printStackTrace();} finally {if (httpclient != null) {try {httpclient.close();} catch (IOException e) {e.printStackTrace();}}}}/** * post方式提交表单(模拟用户登录请求) */public void postForm() {// 创建默认的httpClient实例. CloseableHttpClient httpclient = HttpClients.createDefault();// 创建httppost HttpPost httppost = new HttpPost("http://localhost:8080/myDemo/Ajax/serivceJ.action");// 创建参数队列 List<NameValuePair> formparams = new ArrayList<NameValuePair>();formparams.add(new BasicNameValuePair("username", "admin"));formparams.add(new BasicNameValuePair("password", "123456"));UrlEncodedFormEntity uefEntity;try {uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8");httppost.setEntity(uefEntity);System.out.println("executing request " + httppost.getURI());CloseableHttpResponse response = httpclient.execute(httppost);try {HttpEntity entity = response.getEntity();if (entity != null) {System.out.println("--------------------------------------");System.out.println("Response content: " + EntityUtils.toString(entity, "UTF-8"));System.out.println("--------------------------------------");}} finally {response.close();}} catch (ClientProtocolException e) {e.printStackTrace();} catch (UnsupportedEncodingException e1) {e1.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {// 关闭连接,释放资源 try {httpclient.close();} catch (IOException e) {e.printStackTrace();}}}/** * 发送 post请求访问本地应用并根据传递参数不同返回不同结果 */public void post() {// 创建默认的httpClient实例. CloseableHttpClient httpclient = HttpClients.createDefault();// 创建httppost HttpPost httppost = new HttpPost("http://localhost:8080/myDemo/Ajax/serivceJ.action");// 创建参数队列 List<NameValuePair> formparams = new ArrayList<NameValuePair>();formparams.add(new BasicNameValuePair("type", "house"));UrlEncodedFormEntity uefEntity;try {uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8");httppost.setEntity(uefEntity);System.out.println("executing request " + httppost.getURI());CloseableHttpResponse response = httpclient.execute(httppost);try {HttpEntity entity = response.getEntity();if (entity != null) {System.out.println("--------------------------------------");System.out.println("Response content: " + EntityUtils.toString(entity, "UTF-8"));System.out.println("--------------------------------------");}} finally {response.close();}} catch (ClientProtocolException e) {e.printStackTrace();} catch (UnsupportedEncodingException e1) {e1.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {// 关闭连接,释放资源 try {httpclient.close();} catch (IOException e) {e.printStackTrace();}}}/** * 发送 get请求 */public void get() {CloseableHttpClient httpclient = HttpClients.createDefault();try {// 创建httpget. HttpGet httpget = new HttpGet("http://www.baidu.com/");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() {CloseableHttpClient httpclient = HttpClients.createDefault();try {HttpPost httppost = new HttpPost("http://localhost:8080/myDemo/Ajax/serivceFile.action");FileBody bin = new FileBody(new File("F:\\image\\sendpix0.jpg"));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的Get请求和Post请求
- HttpClient的Get请求和Post请求
- httpclient的get和post请求
- HttpClient的get和post请求数据
- HttpClient 的post和get请求
- httpClient的Get和Post请求
- HttpClient的post和get请求
- httpclient的get和post请求
- HttpClient的GET和POST请求
- httpClient----Post 和 GET请求
- Httpclient post和get请求
- java使用httpclient封装post请求和get的请求
- HttpClient中的GET请求和POST请求
- HttpClient模拟HTTP的GET和POST请求
- HttpClient 实现get和post请求的过程
- httpClient post/get请求。
- HttpClient get,Post请求
- HttpClient get、post请求
- FATE (HDU_2159) 二维完全背包 + 二进制优化
- jsp转发机制小结
- php手机号码归属地查询
- uva 11752 对数
- 区别getFragmentManager、getSupportFragmentManager和getChildFragmentManager
- HttpClient 的post和get请求
- jQuery判断某个元素是否存在
- C++ 泛型算法简介
- 【设计模式】建造者模式
- 构建微服务-第一章-什么是微服务_005可组合性和可替代性优化
- hdu 2111 Saving HDU
- go语言(二):基本知识
- coe_load_sql_baseline.sql脚本使用方法(SPM使用hint方式加载基线)
- hdu 1800 Flying to the Mars