创建一个名为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){
//在这里对异常情况进行处理
}
};
希望我们在学习的过程中多留意这些常用功能的封装,进而让自己写程度的过程更便捷