Java中Https发送POST请求[亲测可用]

 更新时间:2021年05月10日 16:21:56   作者:不是植物  
这篇文章主要介绍了Java中Https发送POST请求[亲测可用],本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1、直接建一个工具类放入即可

/**
 * 发送https请求共用体 
 */
public  static JSONObject  sendPost(String url,String parame,Map<String,Object> pmap) throws IOException, KeyManagementException, NoSuchAlgorithmException, NoSuchProviderException{
    // 请求结果
    JSONObject json = new JSONObject();
    PrintWriter out = null;
    BufferedReader in = null;
    String result = "";
    URL realUrl;
    HttpsURLConnection conn;
    String method = "POST";
    //查询地址
    String queryString = url;
    //请求参数获取
    String postpar = "";
    //字符串请求参数
    if(parame!=null){
        postpar = parame;
    }
    // map格式的请求参数
    if(pmap!=null){
        StringBuffer mstr = new StringBuffer();
        for(String str:pmap.keySet()){
            String val = (String) pmap.get(str);
            try {
                val=URLEncoder.encode(val,"UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
                mstr.append(str+"="+val+"&");
        }
        // 最终参数
        postpar = mstr.toString(); 
        int lasts=postpar.lastIndexOf("&");
        postpar=postpar.substring(0, lasts);
    }
    if(method.toUpperCase().equals("GET")){
        queryString+="?"+postpar;
    }
    SSLSocketFactory  ssf= HttpsClientUtils.getSSFactory();
    try {
        realUrl= new URL(queryString);
        conn = (HttpsURLConnection)realUrl.openConnection();
        conn.setSSLSocketFactory(ssf);
        conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
        conn.setRequestProperty("accept", "*/*");
        conn.setRequestProperty("connection", "Keep-Alive");
        conn.setRequestProperty("user-agent",
                "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
        if(method.toUpperCase().equals("POST")){
            conn.setDoOutput(true);
            conn.setDoInput(true);
            conn.setUseCaches(false);
            out = new PrintWriter(conn.getOutputStream());
            out.print(postpar);
            out.flush();
        }else{
            conn.connect();
        }
        in = new BufferedReader(
                new InputStreamReader(conn.getInputStream(),"utf-8"));
        String line;
        while ((line = in.readLine()) != null) {
            result += line;
        }
        json = JSONObject.fromObject(result);
    }finally {
        try {
            if (out != null) {
                out.close();
            }
            if (in != null) {
                in.close();
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
    return json;
}

2、可能需要的包

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URL;
import java.net.URLEncoder;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Random;
import java.util.Set;
import java.util.TreeMap;

import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSocketFactory;

import net.sf.json.JSONObject;

import org.apache.commons.codec.digest.DigestUtils;
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.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
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;

到此这篇关于Java中Https发送POST请求[亲测可用]的文章就介绍到这了,更多相关https发送post请求内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 线程池ThreadPoolExecutor并行处理实现代码

    线程池ThreadPoolExecutor并行处理实现代码

    这篇文章主要介绍了线程池ThreadPoolExecutor并行处理实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 浅谈SpringMVC中的session用法及细节记录

    浅谈SpringMVC中的session用法及细节记录

    下面小编就为大家带来一篇浅谈SpringMVC中的session用法及细节记录。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Java实现商品管理系统代码实例讲解

    Java实现商品管理系统代码实例讲解

    这篇文章主要介绍了Java实现商品管理系统代码实例讲解,文中代码实例讲解的很清楚,有需要的同学可以借鉴参考下
    2021-02-02
  • Java 线程池原理深入分析

    Java 线程池原理深入分析

    这篇文章主要介绍了Java 线程池原理深入分析的相关资料,需要的朋友可以参考下
    2017-02-02
  • Java 添加、删除、格式化Word中的图片步骤详解( 基于Spire.Cloud.SDK for Java )

    Java 添加、删除、格式化Word中的图片步骤详解( 基于Spire.Cloud.SDK for Java )

    这篇文章主要介绍了Java 添加、删除、格式化Word中的图片( 基于Spire.Cloud.SDK for Java ),本文分步骤通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 如何彻底删除SVN中的文件和文件夹(附恢复方法)

    如何彻底删除SVN中的文件和文件夹(附恢复方法)

    在SVN中如果删除某个文件或文件夹也可以在历史记录中进行找回,有的时候需要彻底删除某些文件,即不希望通过历史记录进行恢复,需要在服务器上对SVN的数据进行重新整理
    2014-08-08
  • 深入了解JAVA HASHMAP的死循环

    深入了解JAVA HASHMAP的死循环

    HASHMAP基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)下面小编来带大家详细了解下吧
    2019-06-06
  • Java线程通信之wait-notify通信方式详解

    Java线程通信之wait-notify通信方式详解

    这篇文章主要为大家详细介绍了Java线程通信之wait-notify通信方式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • SpringBoot2.0实现多图片上传加回显

    SpringBoot2.0实现多图片上传加回显

    这两天公司有需求让做一个商户注册的后台功能,其中需要商户上传多张图片并回显,本文就使用SpringBoot2.0实现,具有一定的参考价值,感兴趣的可以了解一下
    2021-07-07
  • java ThreadPoolExecutor 并发调用实例详解

    java ThreadPoolExecutor 并发调用实例详解

    这篇文章主要介绍了java ThreadPoolExecutor 并发调用实例详解的相关资料,需要的朋友可以参考下
    2017-05-05

最新评论