httpf发送 json_Https发送POST请求[亲测可用]

/*** 发送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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值