java的httpclient_Java使用HttpClient实现Post请求

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 21:02   4302   0

importorg.apache.http.Header;importorg.apache.http.HttpResponse;importorg.apache.http.HttpStatus;importorg.apache.http.client.HttpClient;importorg.apache.http.client.methods.HttpPost;importorg.apache.http.entity.StringEntity;importorg.apache.http.impl.client.DefaultHttpClient;importorg.apache.http.params.CoreConnectionPNames;importjava.util.UUID;importnet.sf.json.JSONObject;importjava.nio.charset.Charset;public static booleanhttpPostWithJson(JSONObject jsonObj,String url,String appId){boolean isSuccess = false;

HttpPost post= null;try{

HttpClient httpClient= newDefaultHttpClient();//设置超时时间

httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 2000);

httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,2000);

post= newHttpPost(url);//构造消息头

post.setHeader("Content-type", "application/json; charset=utf-8");

post.setHeader("Connection", "Close");

String sessionId=getSessionId();

post.setHeader("SessionId", sessionId);

post.setHeader("appid", appid);//构建消息实体

StringEntity entity = new StringEntity(jsonObj.toString(), Charset.forName("UTF-8"));

entity.setContentEncoding("UTF-8");//发送Json格式的数据请求

entity.setContentType("application/json");

post.setEntity(entity);

HttpResponse response=httpClient.execute(post);//检验返回码

int statusCode =response.getStatusLine().getStatusCode();if(statusCode !=HttpStatus.SC_OK){

LogUtil.info("请求出错: "+statusCode);

isSuccess= false;

}else{int retCode = 0;

String sessendId= "";//返回码中包含retCode及会话Id

for(Header header : response.getAllHeaders()){if(header.getName().equals("retcode")){

retCode=Integer.parseInt(header.getValue());

}if(header.getName().equals("SessionId")){

sessendId=header.getValue();

}

}if(ErrorCodeHelper.IAS_SUCCESS !=retCode ){//日志打印

LogUtil.info("error return code, sessionId: "sessendId"\t"+"retCode: "+retCode);

isSuccess= false;

}else{

isSuccess= true;

}

}

}catch(Exception e) {

e.printStackTrace();

isSuccess= false;

}finally{if(post != null){try{

post.releaseConnection();

Thread.sleep(500);

}catch(InterruptedException e) {

e.printStackTrace();

}

}

}returnisSuccess;

}//构建唯一会话Id

public staticString getSessionId(){

UUID uuid=UUID.randomUUID();

String str=uuid.toString();return str.substring(0, 8) + str.substring(9, 13) + str.substring(14, 18) + str.substring(19, 23) + str.substring(24);

}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP