zoukankan      html  css  js  c++  java
  • Java 发送http post 请求

    package com.sm.utils;
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.URL;
    import java.net.URLConnection;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import org.springframework.web.multipart.MultipartHttpServletRequest;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpPost;
    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;
    
    public class HttpUtils {
        public static final String CHARSET = "UTF-8";
        // 发送get请求 url?a=x&b=xx形式
        public static String sendGet(String url, String param) {
            String result = "";
            BufferedReader in = null;
            try {
                String urlName = "";
                if (param.length() != 0) {
                    urlName = url + "?" + param;
                } else
                    urlName = url;
                URL resUrl = new URL(urlName);
                URLConnection urlConnec = resUrl.openConnection();
                urlConnec.setRequestProperty("accept", "*/*");
                urlConnec.setRequestProperty("connection", "Keep-Alive");
                urlConnec.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
                urlConnec.connect();
                Map<String, List<String>> map = urlConnec.getHeaderFields();
                for (String key : map.keySet()) {
                    System.out.println(key + "--->" + map.get(key));
                }
                // 定义 BufferedReader输入流来读取URL的响应
                in = new BufferedReader(new InputStreamReader(urlConnec.getInputStream()));
                String line;
                while ((line = in.readLine()) != null) {
                    result += line;
                }
            } catch (Exception e) {
                System.out.println("发送get请求失败" + e);
                e.printStackTrace();
            } finally {
                try {
                    if (in != null) {
                        in.close();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return result;
        }
    
        // 发送post请求
        public static String sendPost(String url, MultipartHttpServletRequest param) {
            String result = "";
            PrintWriter out = null;
            BufferedReader in = null;
            try {
                URL resUrl = new URL(url);
                URLConnection urlConnec = resUrl.openConnection();
                urlConnec.setRequestProperty("accept", "*/*");
                urlConnec.setRequestProperty("connection", "Keep-Alive");
                urlConnec.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
                // 发送POST请求必须设置如下两行
                urlConnec.setDoInput(true);
                urlConnec.setDoOutput(true);
    
                out = new PrintWriter(urlConnec.getOutputStream());
                out.print(param);// 发送post参数
                out.flush();
                // 定义 BufferedReader输入流来读取URL的响应
                in = new BufferedReader(new InputStreamReader(urlConnec.getInputStream()));
                String line;
                while ((line = in.readLine()) != null) {
                    result += line;
                }
            } catch (Exception e) {
                System.out.println("post请求发送失败" + e);
                e.printStackTrace();
            } finally {
                try {
                    if (in != null) {
                        in.close();
                    }
                    if (out != null) {
                        out.close();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return result;
        }
        
        
        //post请求方法
        public static  String sendPost(String url, Map<String,Object> params) {
           String response = null;
           System.out.println(url);
           System.out.println(params);
           try {
               List<NameValuePair> pairs = null;
                if (params != null && !params.isEmpty()) {
                    pairs = new ArrayList<NameValuePair>(params.size());
                    for (String key : params.keySet()) {
                        pairs.add(new BasicNameValuePair(key, params.get(key).toString()));
                }
                }
               CloseableHttpClient httpclient = null;
               CloseableHttpResponse httpresponse = null;
               try {
                   httpclient = HttpClients.createDefault();
                   HttpPost httppost = new HttpPost(url);
                  // StringEntity stringentity = new StringEntity(data);
                   if (pairs != null && pairs.size() > 0) {
                       httppost.setEntity(new UrlEncodedFormEntity(pairs, CHARSET));
                   }
                   httpresponse = httpclient.execute(httppost);
                   response = EntityUtils
                           .toString(httpresponse.getEntity());
                   System.out.println(response);
               } finally {
                   if (httpclient != null) {
                       httpclient.close();
                   }
                   if (httpresponse != null) {
                       httpresponse.close();
                   }
               }
           } catch (Exception e) {
               e.printStackTrace();
           }
           return response;
        }
        public static void main(String[] args) {
            Map<String,Object> map = new HashMap<String,Object>();
            map.put("id","123456666");
            sendPost("http://192.168.1.56:8080/smkj/api/lcds/user/lcdsUser",map);
        }
        /**
         * 测试
         * 说明:这里用新浪股票接口做get测试,新浪股票接口不支持jsonp,至于post,因为本人用的公司的接口就不展示了,一样的,一个url,一个数据包
         */
        /*
         * public static void main(String[] args) { // TODO Auto-generated method
         * stub String resultGet = sendGet("http://hq.sinajs.cn/list=sh600389","");
         * System.out.println(resultGet); }
         */
    
    }
  • 相关阅读:
    GJM :用JIRA管理你的项目(三)基于LDAP用户管理 [转载]
    GJM :用JIRA管理你的项目(二)JIRA语言包支持及插件支持 [转载]
    GJM : 用JIRA管理你的项目(一)JIRA环境搭建 [转载]
    javascripct导图
    Sublime Text 中使用Git插件连接GitHub
    使用webstorm上传代码到github
    jQuery.ajax()的一些例子
    jQuery.ajax()
    prefix和unprefix
    MVC , MVP , MVVM【转 阮一峰的网络日志】
  • 原文地址:https://www.cnblogs.com/fengwenzhee/p/9044533.html
Copyright © 2011-2022 走看看