創建一個名為HttpUtil的類并提供名為sendHttpRequest靜態方法.
相關代碼如下:
package?com.hzy.networktest;
import?java.io.BufferedReader;
import?java.io.InputStream;
import?java.io.InputStreamReader;
import?java.net.HttpURLConnection;
import?java.net.URL;
public?class?HttpUtil?{
public?static?void?sendHttpRequest(final?String?address,final?HttpCallbackListener?listener){
new?Thread(new?Runnable()?{
public?void?run()?{
HttpURLConnection?connection=null;
try?{
URL?url=new?URL(address);
connection=(HttpURLConnection)?url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(8000);
connection.setReadTimeout(8000);
connection.setDoInput(true);
connection.setDoOutput(true);
InputStream?in=connection.getInputStream();
BufferedReader?reader=new?BufferedReader(new?InputStreamReader(in));
StringBuilder?response=new?StringBuilder();
String?line;
while((line=reader.readLine())!=null){
response.append(line);
}
if(listener!=null){
listener.onFinish(response.toString());
}
}?catch?(Exception?e)?{
//?TODO:?handle?exception
if(listener!=null){
listener.onError(e);
}
}finally?{
if(connection!=null){
connection.disconnect();
}
}
}
}).start();
}
}
以后每當需要發起一條HTTP請求的時候可以簡化為以下寫法:
String address="http://www.*******";//(輸入相應的網址或者其他的類型為URL的資源地址)
String response=HttpUtil.sendHttpRequest(address,new HttpCallbackListener){
//重寫onFinish()
public void onFinish(string response){
//在這里根據返回的內容執行具體的邏輯
}
//重寫onError()
public void onError(Exception e){
//在這里對異常情況進行處理
}
};
希望我們在學習的過程中多留意這些常用功能的封裝,進而讓自己寫程度的過程更便捷