httplicent发送post或get请求
来源:互联网 发布:淘宝申请售后能成功吗 编辑:程序博客网 时间:2024/04/30 04:51
maven依赖
1<dependency>2 <groupId>org.apache.httpcomponents</groupId>3 <artifactId>httpclient</artifactId>4 <version>4.5.2</version>5 </dependency>
GET请求:
1、参数直接拼接到URL后面,即http://test.com?a=1&b=2的形式
1 /** 2 * get请求,参数拼接在地址上 3 * @param url 请求地址加参数 4 * @return 响应 5 */ 6 public String get(String url) 7 { 8 String result = null; 9 CloseableHttpClient httpClient = HttpClients.createDefault();10 HttpGet get = new HttpGet(url);11 CloseableHttpResponse response = null;12 try {13 response = httpClient.execute(get);14 if(response != null && response.getStatusLine().getStatusCode() == 200)15 {16 HttpEntity entity = response.getEntity();17 result = entityToString(entity);18 }19 return result;20 } catch (IOException e) {21 e.printStackTrace();22 }finally {23 try {24 httpClient.close();25 if(response != null)26 {27 response.close();28 }29 } catch (IOException e) {30 e.printStackTrace();31 }32 }33 return null;34 }
2、参数放置到一个map中
1 /** 2 * get请求,参数放在map里 3 * @param url 请求地址 4 * @param map 参数map 5 * @return 响应 6 */ 7 public String getMap(String url,Map<String,String> map) 8 { 9 String result = null;10 CloseableHttpClient httpClient = HttpClients.createDefault();11 List<NameValuePair> pairs = new ArrayList<NameValuePair>();12 for(Map.Entry<String,String> entry : map.entrySet())13 {14 pairs.add(new BasicNameValuePair(entry.getKey(),entry.getValue()));15 }16 CloseableHttpResponse response = null;17 try {18 URIBuilder builder = new URIBuilder(url);19 builder.setParameters(pairs);20 HttpGet get = new HttpGet(builder.build());21 response = httpClient.execute(get);22 if(response != null && response.getStatusLine().getStatusCode() == 200)23 {24 HttpEntity entity = response.getEntity();25 result = entityToString(entity);26 }27 return result;28 } catch (URISyntaxException e) {29 e.printStackTrace();30 } catch (ClientProtocolException e) {31 e.printStackTrace();32 } catch (IOException e) {33 e.printStackTrace();34 }finally {35 try {36 httpClient.close();37 if(response != null)38 {39 response.close();40 }41 } catch (IOException e) {42 e.printStackTrace();43 }44 }45 46 return null;47 }
POST请求:
1、参数放到map中
1 /** 2 * 发送post请求,参数用map接收 3 * @param url 地址 4 * @param map 参数 5 * @return 返回值 6 */ 7 public String postMap(String url,Map<String,String> map) { 8 String result = null; 9 CloseableHttpClient httpClient = HttpClients.createDefault();10 HttpPost post = new HttpPost(url);11 List<NameValuePair> pairs = new ArrayList<NameValuePair>();12 for(Map.Entry<String,String> entry : map.entrySet())13 {14 pairs.add(new BasicNameValuePair(entry.getKey(),entry.getValue()));15 }16 CloseableHttpResponse response = null;17 try {18 post.setEntity(new UrlEncodedFormEntity(pairs,"UTF-8"));19 response = httpClient.execute(post);20 if(response != null && response.getStatusLine().getStatusCode() == 200)21 {22 HttpEntity entity = response.getEntity();23 result = entityToString(entity);24 }25 return result;26 } catch (UnsupportedEncodingException e) {27 e.printStackTrace();28 } catch (ClientProtocolException e) {29 e.printStackTrace();30 } catch (IOException e) {31 e.printStackTrace();32 }finally {33 try {34 httpClient.close();35 if(response != null)36 {37 response.close();38 }39 } catch (IOException e) {40 e.printStackTrace();41 }42 43 }44 return null;45 }
2、参数是json字符串
1 /** 2 * post请求,参数为json字符串 3 * @param url 请求地址 4 * @param jsonString json字符串 5 * @return 响应 6 */ 7 public String postJson(String url,String jsonString) 8 { 9 String result = null;10 CloseableHttpClient httpClient = HttpClients.createDefault();11 HttpPost post = new HttpPost(url);12 CloseableHttpResponse response = null;13 try {14 post.setEntity(new ByteArrayEntity(jsonString.getBytes("UTF-8")));15 response = httpClient.execute(post);16 if(response != null && response.getStatusLine().getStatusCode() == 200)17 {18 HttpEntity entity = response.getEntity();19 result = entityToString(entity);20 }21 return result;22 } catch (UnsupportedEncodingException e) {23 e.printStackTrace();24 } catch (ClientProtocolException e) {25 e.printStackTrace();26 } catch (IOException e) {27 e.printStackTrace();28 }finally {29 try {30 httpClient.close();31 if(response != null)32 {33 response.close();34 }35 } catch (IOException e) {36 e.printStackTrace();37 }38 }39 return null;40 }
entityToString方法:
1 private String entityToString(HttpEntity entity) throws IOException { 2 String result = null; 3 if(entity != null) 4 { 5 long lenth = entity.getContentLength(); 6 if(lenth != -1 && lenth < 2048) 7 { 8 result = EntityUtils.toString(entity,"UTF-8"); 9 }else {10 InputStreamReader reader1 = new InputStreamReader(entity.getContent(), "UTF-8");11 CharArrayBuffer buffer = new CharArrayBuffer(2048);12 char[] tmp = new char[1024];13 int l;14 while((l = reader1.read(tmp)) != -1) {15 buffer.append(tmp, 0, l);16 }17 result = buffer.toString();18 }19 }20 return result;21 }
阅读全文
0 0
- httplicent发送post或get请求
- 发送post或get请求
- 发送GET或POST请求
- 使用httpclient发送get或post请求
- 通过HttpWebRequest分别向服务器发送GET或POST请求
- python发送GET或POST请求以便干一些趣事
- C#模拟http 发送post或get请求
- python发送GET或POST请求以便干一些趣事
- C#模拟http 发送post或get请求
- 用PHP的 sockopen方式发送POST 或GET请求
- python发送GET或POST请求以便干一些趣事
- C#模拟http 发送post或get请求
- C#模拟http 发送post或get请求
- WP8.1发送Post或Get请求顺带文件上传
- C#模拟http 发送post或get请求
- C#模拟http 发送post或get请求
- C#模拟http 发送post或get请求
- C#模拟http 发送post或get请求
- Target Identity-aware Network Flow for Online Multiple Target Tracking
- 初学者笔记Svn
- hdu 2923 Einbahnstrasse
- VS创建.Net MVC项目
- 初探JDK源码之默认字符集
- httplicent发送post或get请求
- 小程序如何进行页面之前的传值
- Python笔记2:Ubuntu下安装MySQL及MySQL终端操作命令
- 500 G JAVA视频网盘分享
- 漫画:什么是HashMap?
- CentOS 6.4下安装中文输入法
- lombok注解消除臃肿代码
- LNMP架构(一)
- 二.gcc动静库的制作