java HttpClient 請(qǐng)求:具體代碼如下:(引入的包都是io包)
方法二中的釋放io資源,最開始沒有在finally釋放,被我們公司老大給說了,后來給修改為在finally釋放。
方法一:
private static Object httpGet(String url)
{
//get請(qǐng)求返回結(jié)果
JSONObject jsonResult = null;
try {
DefaultHttpClient client = new DefaultHttpClient();
//發(fā)送get請(qǐng)求
HttpGet request = new HttpGet(url);
HttpResponse response = client.execute(request);
/**請(qǐng)求發(fā)送成功,并得到響應(yīng)**/
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
/**讀取服務(wù)器返回過來的json字符串?dāng)?shù)據(jù)**/
String strResult = EntityUtils.toString(response.getEntity());
/**把json字符串轉(zhuǎn)換成json對(duì)象**/
jsonResult = JSONObject.parseObject(strResult);
url = URLDecoder.decode(url, "UTF-8");
} else {
}
} catch (IOException e) {
}
return null;
}
方法二:
publicJSONObjecthttpGet(Stringreq_url) {
StringBufferbuffer=newStringBuffer();
InputStreaminputStream=null;
HttpURLConnectionhttpUrlConn=null;
InputStreamReaderinputStreamReader=null;
BufferedReaderbufferedReader=null;
try{
URLurl=newURL(req_url);
httpUrlConn= (HttpURLConnection)url.openConnection();
httpUrlConn.setDoOutput(false);
httpUrlConn.setDoInput(true);
httpUrlConn.setUseCaches(false);
httpUrlConn.setRequestMethod("GET");
httpUrlConn.connect();
// 將返回的輸入流轉(zhuǎn)換成字符串
inputStream=httpUrlConn.getInputStream();
inputStreamReader=newInputStreamReader(inputStream,"utf-8");
bufferedReader=newBufferedReader(inputStreamReader);
Stringstr=null;
while((str=bufferedReader.readLine()) !=null) {
buffer.append(str);
}
}catch(Exceptione) {
LOGGER.error(e.getMessage());
}finally{
// 釋放資源
try{
inputStream.close();
bufferedReader.close();
inputStreamReader.close();
}catch(IOExceptione) {
LOGGER.error(e.getMessage());
}
inputStream=null;
httpUrlConn.disconnect();
}
returnJSONObject.parseObject(buffer.toString());
}