package com.jqyd.app;
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;
}
}