问题记录
在sql解析这个项目中,用到了HttpClient来向服务器提交get请求,将返回的请求写回到对象的字段中去。
问题在于:如果是多线程的情况下调用这个sendGetAPI
方法,会出现
对应代码如下:
public static Long sendGetAPI(String url) throws Exception{
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
// add request header
request.addHeader("User-Agent",USER_AGENT);
//add config
request.addHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_CLOSE);
HttpResponse response = client.execute(request);
BufferedReader rd = new BufferedReader(
new InputStreamReader(response.getEntity().getContent()));
StringBuffer result = new StringBuffer();
String line = "";
while ((line = rd.readLine()) != null) {
result.append(line);
}
//转为JSON
JSONObject json;
json = JSONObject.parseObject(result.toString());
Long data = json.getLong("data")/1048576;
return data;
}