@
xixinimei 怎么会 wait 呢,啥事都没做,就用 okhttp 发送 http 请求,怎么这么多 wait 的,TCP 连接数不断上涨,感觉跟这 okhttp 有很大关系。
代码:
/**
* 向指定 URL 发送 POST 方法的请求
*
* @
param url 发送请求的 URL
* @
param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @
return 所代表远程资源的响应结果
*/
public static String sendPostOKHttp(String url, String param) {
logger.info("sendPostOKHttp()");
OkHttpClient client = new OkHttpClient();
// 1.构建 RequestBody
RequestBody body = RequestBody.create(MediaType.parse("text/xml;charset=UTF-8"),param);
Request request = new Request.Builder().url(url).post(body).build();
Response response = null;
try {
response = client.newCall(request).execute();
return response.body().string();
} catch (IOException e) {
e.printStackTrace();
}
return "";
}
/**
* 处理 http 请求( GET/POST )
*
* @
param reqUrl 请求地址
* @
param reqMethod 请求方式( GET/POST )
* @
param outputStr 参数( JSON String )
* @
return */
public static String httpReqOKHttp(String reqUrl, String reqMethod, String outputStr) {
logger.info("httpReqOKHttp()");
String returnStr = "";
if ("POST".equalsIgnoreCase(reqMethod)) {
MediaType JSON = MediaType.get("application/json; charset=utf-8");
OkHttpClient client = new OkHttpClient();
RequestBody body = RequestBody.create(JSON, outputStr);
Request request = new Request.Builder().url(reqUrl).post(body).build();
Response response = null;
try {
response = client.newCall(request).execute();
returnStr = response.body().string();
} catch (IOException e) {
e.printStackTrace();
logger.error(e.getStackTrace());
}
}
if ("GET".equalsIgnoreCase(reqMethod)) {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(reqUrl).build();
Response response = null;
try {
response = client.newCall(request).execute();
returnStr = response.body().string();
} catch (IOException e) {
logger.error(e.getStackTrace());
}
}
return returnStr;
}
/**
* 向指定 URL 发送 GET 方法的请求
*
* @
param url 发送请求的 URL
* @
return URL 所代表远程资源的响应结果
*/
public static String sendGetOKHttp(String url) {
logger.info("sendGetOKHttp()");
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(url).build();
Response response = null;
try {
response = client.newCall(request).execute();
return response.body().string();
} catch (IOException e) {
e.printStackTrace();
}
return "";
}