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);
}