/*** 发送https请求共用体*/
public static JSONObject sendPost(String url,String parame,Map pmap) throwsIOException, KeyManagementException, NoSuchAlgorithmException, NoSuchProviderException{//请求结果
JSONObject json = newJSONObject();
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= newStringBuffer();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= newURL(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= newPrintWriter(conn.getOutputStream());
out.print(postpar);
out.flush();
}else{
conn.connect();
}
in= newBufferedReader(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();
}
}returnjson;
}
本文介绍了一种基于Java的HTTPS请求共用体实现方法,包括如何使用POST方法发送请求、处理请求参数(字符串和Map格式)、配置SSL连接以及读取响应结果。
696

被折叠的 条评论
为什么被折叠?



