最近在写Android,因为get请求太常用了,就做了个封装,课本整合,
public class HttpUtil {
public static void sendHttpRequest(final String address,final
HttpCallbackListener listener){
new Thread(new Runnable() {
@Override
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){
if(listener!=null){
listener.onError(e);
}
}finally {
if(connection!=null){
connection.disconnect();
}
}
}
}).start();
}
}
public interface HttpCallbackListener {
void onFinish(String response);
void onError(Exception e);
}
activity中使用
private void sendToGetCoin(int car_id){
String coinUrl="http://"+ MyIp.ip+":8080/CarSafe/IntegrationServlet?car_id="+car_id;
HttpUtil.sendHttpRequest(coinUrl, new HttpCallbackListener() {
@Override
public void onFinish(String response) {
Message message=new Message();
message.what=SHOW_COIN;
message.obj=response;
handler.sendMessage(message);//这样就完成了和主线程通信,通过主线程显示出来
}
@Override
public void onError(Exception e) {
}
});
}