1. 程式人生 > >Https發送POST請求[親測可用]

Https發送POST請求[親測可用]

for 可能 -type tps IV manage col psc esp

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;

Https發送POST請求[親測可用]