zoukankan      html  css  js  c++  java
  • Http请求1

      1 package Test;
      2 
      3 import java.io.IOException;
      4 import java.io.InputStreamReader;
      5 import java.net.URISyntaxException;
      6 import java.util.ArrayList;
      7 import java.util.List;
      8 import java.util.Map;
      9 import org.apache.http.NameValuePair;
     10 import org.apache.http.HttpEntity;
     11 import org.apache.http.client.ClientProtocolException;
     12 import org.apache.http.client.methods.CloseableHttpResponse;
     13 import org.apache.http.client.methods.HttpGet;
     14 import org.apache.http.client.methods.HttpPost;
     15 import org.apache.http.client.utils.URIBuilder;
     16 import org.apache.http.entity.ContentType;
     17 import org.apache.http.entity.StringEntity;
     18 import org.apache.http.impl.client.CloseableHttpClient;
     19 import org.apache.http.impl.client.HttpClients;
     20 import org.apache.http.message.BasicNameValuePair;
     21 import org.apache.http.util.CharArrayBuffer;
     22 import org.apache.http.util.EntityUtils;
     23 
     24 public class HttpClient {
     25     /**
     26      * 包含字符串参数的HttpPost请求
     27      */
     28     public static String doPostStr(String url, String string) throws IOException {
     29         String resp = null;
     30         StringEntity entityStr = new StringEntity(string,ContentType.create("text/plain", "UTF-8"));
     31         CloseableHttpClient httpClient = HttpClients.createDefault();
     32         HttpPost httpPost = new HttpPost(url);
     33         httpPost.setEntity(entityStr);
     34         CloseableHttpResponse response = null;
     35         try {
     36             response = httpClient.execute(httpPost);
     37             HttpEntity entity = response.getEntity();
     38             resp = EntityUtils.toString(entity, "UTF-8");
     39             EntityUtils.consume(entity);
     40         } catch (ClientProtocolException e) {
     41             e.printStackTrace();
     42         } catch (IOException e) {
     43             e.printStackTrace();
     44         } finally {
     45             if (response != null) {
     46                 try {
     47                     response.close();
     48                 } catch (IOException e) {
     49                     e.printStackTrace();
     50                 }
     51             }
     52         }
     53         return resp;
     54     }
     55     /**
     56      * 不含参数的HttpPost请求
     57      */
     58     public static String doPost(String url) throws IOException {
     59         CloseableHttpClient httpclient = HttpClients.createDefault();
     60         HttpPost httppost = new HttpPost(url);
     61         CloseableHttpResponse response = null;
     62         try {
     63             response = httpclient.execute(httppost);
     64         } catch (IOException e) {
     65             e.printStackTrace();
     66         }
     67         HttpEntity entity = response.getEntity();
     68         String result = null;
     69         result = EntityUtils.toString(entity);
     70         return result;
     71     }
     72     /**
     73      * 包含Map参数的HttpGet请求
     74      */
     75     public static String doGetMap(String url, Map<String,String> map) throws IOException {
     76         String result = null;
     77         CloseableHttpClient httpClient = HttpClients.createDefault();
     78         List<NameValuePair> pairs = new ArrayList<NameValuePair>();
     79         for(Map.Entry<String,String> entry : map.entrySet()){
     80             pairs.add(new BasicNameValuePair(entry.getKey(),entry.getValue()));
     81         }
     82         CloseableHttpResponse response = null;
     83         try {
     84             URIBuilder builder = new URIBuilder(url);
     85             builder.setParameters(pairs);
     86             HttpGet get = new HttpGet(builder.build());
     87             response = httpClient.execute(get);
     88             if(response != null && response.getStatusLine().getStatusCode() == 200){
     89                 HttpEntity entity = response.getEntity();
     90                 long lenth = entity.getContentLength();
     91                 if(lenth != -1 && lenth < 2048){
     92                     result = EntityUtils.toString(entity,"UTF-8");
     93                 }else {
     94                     InputStreamReader reader1 = new InputStreamReader(entity.getContent(), "UTF-8");
     95                     CharArrayBuffer buffer = new CharArrayBuffer(2048);
     96                     char[] tmp = new char[1024];
     97                     int l;
     98                     while((l = reader1.read(tmp)) != -1) {
     99                         buffer.append(tmp, 0, l);
    100                     }
    101                     result = buffer.toString();
    102                 }
    103             }
    104         } catch (URISyntaxException e) {
    105             e.printStackTrace();
    106         } catch (ClientProtocolException e) {
    107             e.printStackTrace();
    108         } catch (IOException e) {
    109             e.printStackTrace();
    110         }finally {
    111             try {
    112                 httpClient.close();
    113                 if(response != null)
    114                 {
    115                     response.close();
    116                 }
    117             } catch (IOException e) {
    118                 e.printStackTrace();
    119             }
    120         }
    121         return result;
    122     }
    123     /**
    124      * 发送不带参数的HttpGet请求
    125      */
    126     public static String sendGet(String url) throws IOException {
    127         CloseableHttpClient httpclient = HttpClients.createDefault();
    128         HttpGet httpget = new HttpGet(url);
    129         CloseableHttpResponse response = null;
    130         try {
    131             response = httpclient.execute(httpget);
    132         } catch (IOException e) {
    133             e.printStackTrace();
    134         }
    135         HttpEntity entity = response.getEntity();
    136         String result = null;
    137         result = EntityUtils.toString(entity);
    138         return result;
    139     }
    140 }
  • 相关阅读:
    WPF
    Xamarin.Forms + Prism,整理页面导航跳转流程
    Xamarin.Forms踩坑整理
    整理
    WPF
    LINQ中,Single()、SingleOrDefault()的解析、示例
    InstallShield打包
    Centos7安装jexus,部署asp.net core,asp.net mvc
    c#修改webConfig的内容
    .net core 3.1简单swagger配置教程
  • 原文地址:https://www.cnblogs.com/goatherd/p/10840131.html
Copyright © 2011-2022 走看看