<td id="aqqih"></td>

<dd id="aqqih"></dd>
  1. <span id="aqqih"></span>
  2. <ol id="aqqih"></ol>

    怎么實現HTTPS POST發送FORM表單參數返回Json

    今天小編給大家分享一下怎么實現HTTPS POST發送FORM表單參數返回Json的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

    依賴

    <!--httpClient?Start-->
    ????????<!--httpClient?文件上傳?Start-->
    ????????<!--?https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload?-->
    ????????<dependency>
    ????????????<groupId>commons-fileupload</groupId>
    ????????????<artifactId>commons-fileupload</artifactId>
    ????????????<version>1.4</version>
    ????????</dependency>
    ????????<!--?https://mvnrepository.com/artifact/commons-io/commons-io?-->
    ????????<dependency>
    ????????????<groupId>commons-io</groupId>
    ????????????<artifactId>commons-io</artifactId>
    ????????????<version>2.11.0</version>
    ????????</dependency>
    ????????<!--httpClient?文件上傳?End-->
    ????????<!--?https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore?-->
    ????????<dependency>
    ????????????<groupId>org.apache.httpcomponents</groupId>
    ????????????<artifactId>httpcore</artifactId>
    ????????????<version>4.4.14</version>
    ????????</dependency>
    ????????<!--?https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient?-->
    ????????<dependency>
    ????????????<groupId>commons-httpclient</groupId>
    ????????????<artifactId>commons-httpclient</artifactId>
    ????????????<version>3.1</version>
    ????????</dependency>
    ????????<!--?https://mvnrepository.com/artifact/org.apache.httpcomponents/httpmime?-->
    ????????<dependency>
    ????????????<groupId>org.apache.httpcomponents</groupId>
    ????????????<artifactId>httpmime</artifactId>
    ????????????<version>4.5.13</version>
    ????????</dependency>
    ????????<!--httpClient?End-->

    工具類

    package?com.sinosoft.fis.utils;
    import?org.apache.http.HttpEntity;
    import?org.apache.http.HttpStatus;
    import?org.apache.http.client.config.RequestConfig;
    import?org.apache.http.client.methods.CloseableHttpResponse;
    import?org.apache.http.client.methods.HttpPost;
    import?org.apache.http.conn.ssl.SSLConnectionSocketFactory;
    import?org.apache.http.conn.ssl.SSLContextBuilder;
    import?org.apache.http.conn.ssl.TrustStrategy;
    import?org.apache.http.conn.ssl.X509HostnameVerifier;
    import?org.apache.http.impl.client.CloseableHttpClient;
    import?org.apache.http.impl.client.HttpClients;
    import?org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
    import?org.apache.http.util.EntityUtils;
    import?javax.net.ssl.SSLContext;
    import?javax.net.ssl.SSLException;
    import?javax.net.ssl.SSLSession;
    import?javax.net.ssl.SSLSocket;
    import?java.io.IOException;
    import?java.security.GeneralSecurityException;
    import?java.security.cert.CertificateException;
    import?java.security.cert.X509Certificate;
    /**
    ?*?實現HTTPS協議POST請求FORM參數返回報文
    ?*
    ?*?@author?gblfy
    ?*?@date?2022-09-26
    ?*/
    public?class?HttpFormClient?{
    ????private?static?PoolingHttpClientConnectionManager?connMgr;
    ????private?static?RequestConfig?requestConfig;
    ????private?static?final?int?MAX_TIMEOUT?=?7000;
    ????static?{
    ????????//?設置連接池
    ????????connMgr?=?new?PoolingHttpClientConnectionManager();
    ????????//?設置連接池大小
    ????????connMgr.setMaxTotal(100);
    ????????connMgr.setDefaultMaxPerRoute(connMgr.getMaxTotal());
    ????????RequestConfig.Builder?configBuilder?=?RequestConfig.custom();
    ????????//?設置連接超時
    ????????configBuilder.setConnectTimeout(MAX_TIMEOUT);
    ????????//?設置讀取超時
    ????????configBuilder.setSocketTimeout(MAX_TIMEOUT);
    ????????//?設置從連接池獲取連接實例的超時
    ????????configBuilder.setConnectionRequestTimeout(MAX_TIMEOUT);
    ????????//?在提交請求之前?測試連接是否可用
    ????????configBuilder.setStaleConnectionCheckEnabled(true);
    ????????requestConfig?=?configBuilder.build();
    ????}
    ????/**
    ?????*?發送?HTTPS?POST?請求
    ?????*
    ?????*?@param?apiUrl??????API接口URL
    ?????*?@return
    ?????*/
    ????public?static?String?sendPostHttpSSLJsonOrForm(String?apiUrl)?{
    ????????CloseableHttpClient?httpClient?=?HttpClients.custom().setSSLSocketFactory(createSSLConnSocketFactory()).setConnectionManager(connMgr).setDefaultRequestConfig(requestConfig).build();
    ????????HttpPost?httpPost?=?new?HttpPost(apiUrl);
    ????????CloseableHttpResponse?response?=?null;
    ????????String?httpStr?=?null;
    ????????try?{
    ????????????httpPost.setConfig(requestConfig);
    ????????????response?=?httpClient.execute(httpPost);
    ????????????int?statusCode?=?response.getStatusLine().getStatusCode();
    ????????????if?(statusCode?!=?HttpStatus.SC_OK)?{
    ????????????????return?null;
    ????????????}
    ????????????HttpEntity?entity?=?response.getEntity();
    ????????????if?(entity?==?null)?{
    ????????????????return?null;
    ????????????}
    ????????????httpStr?=?EntityUtils.toString(entity,?"utf-8");
    ????????}?catch?(Exception?e)?{
    ????????????e.printStackTrace();
    ????????}?finally?{
    ????????????if?(response?!=?null)?{
    ????????????????try?{
    ????????????????????EntityUtils.consume(response.getEntity());
    ????????????????}?catch?(IOException?e)?{
    ????????????????????e.printStackTrace();
    ????????????????}
    ????????????}
    ????????}
    ????????return?httpStr;
    ????}
    ????/**
    ?????*?創建SSL安全連接
    ?????*
    ?????*?@return
    ?????*/
    ????private?static?SSLConnectionSocketFactory?createSSLConnSocketFactory()?{
    ????????SSLConnectionSocketFactory?sslsf?=?null;
    ????????try?{
    ????????????SSLContext?sslContext?=?new?SSLContextBuilder().loadTrustMaterial(null,?new?TrustStrategy()?{
    ????????????????@Override
    ????????????????public?boolean?isTrusted(X509Certificate[]?chain,?String?authType)?throws?CertificateException?{
    ????????????????????return?true;
    ????????????????}
    ????????????}).build();
    ????????????sslsf?=?new?SSLConnectionSocketFactory(sslContext,?new?X509HostnameVerifier()?{
    ????????????????@Override
    ????????????????public?boolean?verify(String?arg0,?SSLSession?arg1)?{
    ????????????????????return?true;
    ????????????????}
    ????????????????@Override
    ????????????????public?void?verify(String?host,?SSLSocket?ssl)?throws?IOException?{
    ????????????????}
    ????????????????@Override
    ????????????????public?void?verify(String?host,?X509Certificate?cert)?throws?SSLException?{
    ????????????????}
    ????????????????@Override
    ????????????????public?void?verify(String?host,?String[]?cns,?String[]?subjectAlts)?throws?SSLException?{
    ????????????????}
    ????????????});
    ????????}?catch?(GeneralSecurityException?e)?{
    ????????????e.printStackTrace();
    ????????}
    ????????return?sslsf;
    ????}
    ????public?static?void?main(String[]?args)?{
    ????????String?postSSL?=?HttpFormClient.sendPostHttpSSLJsonOrForm("https://gblfy/openapi/auth/credential?clientId=newchinalife&secret=f1hyv7av&userType=2");
    ????????System.out.println("返回"?+?postSSL);
    ????}
    }

    以上就是“怎么實現HTTPS POST發送FORM表單參數返回Json”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注蝸牛博客行業資訊頻道。

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:niceseo99@gmail.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    評論

    日本韩欧美一级A片在线观看
    <td id="aqqih"></td>

    <dd id="aqqih"></dd>
    1. <span id="aqqih"></span>
    2. <ol id="aqqih"></ol>