package com.jqyd.pub.transport; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URI; import org.apache.commons.httpclient.params.HttpMethodParams; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.params.BasicHttpParams; import org.apache.http.params.HttpConnectionParams; public class SendServer { private String url = ""; public SendServer(String url){ this.url = url; } /** * 发送至服务器,返回JSON对象 * @return */ public String requestJsonFromServer(StringEntity jsonObj){ String result = "-1"; HttpClient client = setTimeOut(); String CONTENT_CHARSET = "gbk";// httpclient读取内容时使用的字符集 client.getParams().setParameter( HttpMethodParams.HTTP_CONTENT_CHARSET, CONTENT_CHARSET); HttpPost request; try{ System.out.println(url); request = new HttpPost(new URI(url)); request.setEntity(jsonObj); HttpResponse response=client.execute(request); System.out.println("***************:"+response.getStatusLine().getStatusCode()); if(response.getStatusLine().getStatusCode()==200){ //流形式获得 StringBuilder builder = new StringBuilder(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); for(String s = bufferedReader.readLine();s!=null;s=bufferedReader.readLine()){ builder.append(s); } result = builder.toString(); }else if(response.getStatusLine().getStatusCode()==500){ result = "500";//鉴权出错,核心层处理出错 }else if(response.getStatusLine().getStatusCode()==404){ result = "-1";//网络请求失败 } }catch(Exception e){ e.printStackTrace(); } System.out.println("---------"+result); return result; } /** * 添加请求超时时间和等待时间 * @return */ public HttpClient setTimeOut(){ final int REQUEST_TIMEOUT = 30*1000;//设置请求超时30秒钟 final int SO_TIMEOUT = 180*1000; //设置等待数据超时时间180秒钟 BasicHttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, REQUEST_TIMEOUT); HttpConnectionParams.setSoTimeout(httpParams, SO_TIMEOUT); HttpClient client = new DefaultHttpClient(httpParams); return client; } }