• 发送HTTP请求 -- HttpUtil


    1.

      1 package com.step.utils;
      2 
      3 import java.io.IOException;
      4 import java.net.URLDecoder;
      5 import java.util.ArrayList;
      6 import java.util.List;
      7 
      8 import org.apache.http.HttpResponse;
      9 import org.apache.http.HttpStatus;
     10 import org.apache.http.NameValuePair;
     11 import org.apache.http.client.ClientProtocolException;
     12 import org.apache.http.client.HttpClient;
     13 import org.apache.http.client.entity.UrlEncodedFormEntity;
     14 import org.apache.http.client.methods.HttpGet;
     15 import org.apache.http.client.methods.HttpPost;
     16 import org.apache.http.entity.StringEntity;
     17 import org.apache.http.impl.client.DefaultHttpClient;
     18 import org.apache.http.message.BasicNameValuePair;
     19 import org.apache.http.util.EntityUtils;
     20 
     21 import com.alibaba.fastjson.JSONObject;
     22 
     23 
     24 
     25 /**
     26  * 发送HTTP请求
     27  * @author mlu
     28  *
     29  */
     30 public class HttpUtils {
     31     
     32     /**
     33      * 发送post请求--用于接口接收的参数为JSON字符串
     34      * @param url 请求地址
     35      * @param params json格式的字符串
     36      * @return
     37      */
     38     public static String httpPost(String url, String params){
     39         String result = null;
     40         try {
     41             HttpClient httpClient = new DefaultHttpClient();
     42             HttpPost httpPost = new HttpPost(url);
     43             /*
     44              * 发送json字符串,这两句需要设置
     45              */
     46             httpPost.addHeader("Content-type","application/json; charset=utf-8");  
     47             httpPost.setHeader("Accept", "application/json");  
     48             
     49             httpPost.setEntity(new StringEntity(params, "UTF-8"));
     50             
     51             HttpResponse response = httpClient.execute(httpPost);  
     52             
     53             int statusCode = response.getStatusLine().getStatusCode();  
     54               
     55             if (statusCode == HttpStatus.SC_OK) {  
     56                 // Read the response body  
     57                 result = EntityUtils.toString(response.getEntity(),"UTF-8");  
     58             } 
     59         } catch (Exception e) {
     60             e.printStackTrace();
     61         }
     62         return result;
     63     }
     64     
     65     /**
     66      * 发送post请求--用于接口接收的参数为键值对
     67      * @param url 请求地址
     68      * @param nameValuePairs 键值对
     69      * @return
     70      */
     71     public static String httpPost(String url, List<NameValuePair> nameValuePairs) {
     72         HttpClient httpClient = new DefaultHttpClient();
     73         HttpPost httpPost = new HttpPost(url);
     74         String strResult = "";
     75 
     76         try {
     77             httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
     78             HttpResponse response = httpClient.execute(httpPost);
     79 
     80             if (response.getStatusLine().getStatusCode() == 200) {
     81                 /* 读返回数据 */
     82                 strResult = EntityUtils.toString(response.getEntity());
     83                 // System.out.println("conResult:"+conResult);
     84             } else {
     85                 strResult += "发送失败:" + response.getStatusLine().getStatusCode();
     86             }
     87         } catch (ClientProtocolException e) {
     88             e.printStackTrace();
     89         } catch (IOException e) {
     90             e.printStackTrace();
     91         }
     92 
     93         return strResult;
     94     }
     95     
     96     public static String httpGet(String url, List<NameValuePair> nameValuePairs){
     97         HttpClient httpClient = new DefaultHttpClient();
     98         String sb = "";
     99         String result = "";
    100         try {
    101             for(NameValuePair nvp:nameValuePairs){
    102                 sb += nvp.getName()+"="+nvp.getValue()+"&";
    103             }
    104             sb = sb.substring(0,sb.length()-1);
    105             sb = URLDecoder.decode(sb, "UTF-8");
    106             HttpGet httpGet = new HttpGet(url+"?"+sb);
    107         
    108             HttpResponse response = httpClient.execute(httpGet);
    109             if (response.getStatusLine().getStatusCode() == 200) {
    110                 /* 读返回数据 */
    111                 result = EntityUtils.toString(response.getEntity());
    112             } else {
    113                 result += "发送失败:" + response.getStatusLine().getStatusCode();
    114             }
    115             
    116         } catch (ClientProtocolException e) {
    117             e.printStackTrace();
    118         } catch (IOException e) {
    119             e.printStackTrace();
    120         }
    121         return result;
    122     }
    123     
    124     public static void main(String[] args) {
    125         String url = "http://10.140.8.56/gd_fssc/rest/fsscService/getStaffInfo";
    126         String url2 = "http://localhost:8080/eshore-app-backframe-web/interface/getJson";
    127 
    128         // 发送 POST 请求
    129         JSONObject json = new JSONObject();
    130         json.put("number", "44053211@GD");
    131         httpPost(url,json.toString());
    132         
    133         List<NameValuePair> nameValuePairs = new ArrayList<>();
    134         nameValuePairs.add(new BasicNameValuePair("method", "login"));
    135         httpGet(url2,nameValuePairs);
    136     }
    137 }

    引用的jar包:

  • 相关阅读:
    数据结构-顺序表
    数据结构-概论
    社交网络图中结点的“重要性”计算 (30 分) C++解法
    面向对象程序设计--Java语言第二周编程题:有秒计时的数字时钟
    面向对象程序设计--Java语言第三周编程题:查找里程
    面向对象程序设计--Java语言第一周编程题:分数
    剑指Offer_#42_连续子数组的最大和
    vue--模态框背景不动解决方案
    redis(十七):Redis 安装,部署(WINDOWS环境下)
    redis(二十一):Redis 架构模式实现(哨兵)
  • 原文地址:https://www.cnblogs.com/sharpest/p/7789208.html
Copyright © 2020-2023  润新知