较老类的httputil,用着方便
public static void main(String[] args) throws Exception {
JSONObject reqJson=new JSONObject();
reqJson.put("REMARK", "闹着玩");
JSONObject json = new JSONObject();
json.put("SSS", "DDD");
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("REQ", json.toString()));
HttpClientUtil httpClientUtil = new HttpClientUtil();
String resultstr = httpClientUtil.getResponseString(url, nvps);
System.out.println("解密返回数据: "+resultstr);
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.SocketTimeoutException;
import java.util.List;
import net.sf.json.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ConnectTimeoutException;
import org.apache.http.conn.params.ConnRouteParams;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
public class HttpClientUtil {
private Logger logger = LogManager.getLogger("HttpClientUtil");
private HttpClient httpClient;
public HttpClientUtil() {
httpClient = new DefaultHttpClient(new ThreadSafeClientConnManager());
httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 10000);
httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 10000 );
}
public HttpClient getHttpClient() {
return this.httpClient;
}
public int getResponseStatusCode(String url, List<NameValuePair> nvps)
throws ClientProtocolException, IOException {
HttpResponse hr = getResponse(url, nvps);
EntityUtils.consume(hr.getEntity());
return hr.getStatusLine().getStatusCode();
}
public String getResponseString(String url, List<NameValuePair> nvps)
throws ClientProtocolException, IOException {
HttpResponse response = getResponse(url, nvps);
String body="";
if (null==response || response.equals("")) {
return body;
}
int code = response.getStatusLine().getStatusCode();
if (code == HttpStatus.SC_OK) {
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String inputLine;
StringBuffer responseResult = new StringBuffer();
while ((inputLine = reader.readLine()) != null) {
responseResult.append(inputLine);
}
reader.close();
body=responseResult.toString();
}else{
System.out.println("======状态码异常===="+code);
}
return body;
}
public byte[] getResponseByteArray(String url, List<NameValuePair> nvps)
throws ClientProtocolException, IOException {
HttpEntity he = getEntity(url, nvps);
byte[] result = EntityUtils.toByteArray(he);
EntityUtils.consume(he);
return result;
}
public String getResponseStr(String url, JSONObject nvps)
throws ClientProtocolException, IOException {
HttpEntity he = getEntity(url, nvps);
String result = EntityUtils.toString(he, HTTP.UTF_8);
EntityUtils.consume(he);
return result;
}
public HttpEntity getEntity(String url, List<NameValuePair> nvps)
throws ClientProtocolException, IOException {
return getResponse(url, nvps).getEntity();
}
public HttpEntity getEntity(String url, JSONObject nvps)
throws ClientProtocolException, IOException {
return getResponse(url, nvps).getEntity();
}
public HttpResponse getResponse(String url, List<NameValuePair> nvps)
throws IOException{
HttpResponse execute = null;
if (nvps != null) {
HttpPost hp = new HttpPost(url);
hp.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
try {
execute= httpClient.execute(hp);
} catch (SocketTimeoutException e) {
logger.warn("Post接口返回超时 SocketTimeoutException: "+url);
e.printStackTrace();
} catch (ConnectTimeoutException e) {
logger.warn("Post接口返回超时 ConnectTimeoutException : "+url);
e.printStackTrace();
}
} else {
HttpGet hg = new HttpGet(url);
try {
execute= httpClient.execute(hg);
} catch (SocketTimeoutException e) {
logger.warn("Get接口返回超时 SocketTimeoutException : "+url);
e.printStackTrace();
} catch (ConnectTimeoutException e) {
logger.warn("get接口返回超时 ConnectTimeoutException : "+url);
e.printStackTrace();
}
}
return execute;
}
public HttpResponse getResponse(String url, JSONObject nvps)
throws ClientProtocolException, IOException {
HttpResponse execute = null;
if (nvps != null) {
HttpPost hp = new HttpPost(url);
hp.setEntity(new StringEntity(nvps.toString(), HTTP.UTF_8));
try {
execute= httpClient.execute(hp);
} catch (SocketTimeoutException e) {
logger.warn("Post接口返回超时 SocketTimeoutException: "+url);
e.printStackTrace();
} catch (ConnectTimeoutException e) {
logger.warn("Post接口返回超时 ConnectTimeoutException : "+url);
e.printStackTrace();
}
} else {
HttpGet hg = new HttpGet(url);
try {
execute= httpClient.execute(hg);
} catch (SocketTimeoutException e) {
logger.warn("Post接口返回超时 SocketTimeoutException: "+url);
e.printStackTrace();
} catch (ConnectTimeoutException e) {
logger.warn("Post接口返回超时 ConnectTimeoutException : "+url);
e.printStackTrace();
}
}
return execute;
}
public HttpResponse getResponseJson(String url, JSONObject nvps)
throws ClientProtocolException, IOException {
HttpResponse execute = null;
if (nvps != null) {
HttpPost hp = new HttpPost(url);
hp.setEntity(new StringEntity(nvps.toString(), HTTP.UTF_8));
hp.setHeader("Content-Type", "application/json;charset=UTF-8");
try {
execute= httpClient.execute(hp);
} catch (SocketTimeoutException e) {
logger.warn("Post接口返回超时 SocketTimeoutException: "+url);
e.printStackTrace();
} catch (ConnectTimeoutException e) {
logger.warn("Post接口返回超时 ConnectTimeoutException : "+url);
e.printStackTrace();
}
} else {
HttpGet hg = new HttpGet(url);
try {
execute= httpClient.execute(hg);
} catch (SocketTimeoutException e) {
logger.warn("Post接口返回超时 SocketTimeoutException: "+url);
e.printStackTrace();
} catch (ConnectTimeoutException e) {
logger.warn("Post接口返回超时 ConnectTimeoutException : "+url);
e.printStackTrace();
}
}
return execute;
}
public HttpResponse getResponsestr(String url, String nvps)
throws ClientProtocolException, IOException {
HttpResponse execute = null;
if (nvps != null) {
HttpPost hp = new HttpPost(url);
hp.setEntity(new StringEntity(nvps.toString(), HTTP.UTF_8));
hp.setHeader("Content-Type", "application/json;charset=UTF-8");
try {
execute= httpClient.execute(hp);
} catch (SocketTimeoutException e) {
logger.warn("Post接口返回超时 SocketTimeoutException: "+url);
e.printStackTrace();
} catch (ConnectTimeoutException e) {
logger.warn("Post接口返回超时 ConnectTimeoutException : "+url);
e.printStackTrace();
}
} else {
HttpGet hg = new HttpGet(url);
try {
execute= httpClient.execute(hg);
} catch (SocketTimeoutException e) {
logger.warn("Post接口返回超时 SocketTimeoutException: "+url);
e.printStackTrace();
} catch (ConnectTimeoutException e) {
logger.warn("Post接口返回超时 ConnectTimeoutException : "+url);
e.printStackTrace();
}
}
return execute;
}
}