关于对发送HTTP请求以及解析服务器返回的数据操作的提取到一个公共类中进行封装
生活随笔
收集整理的這篇文章主要介紹了
关于对发送HTTP请求以及解析服务器返回的数据操作的提取到一个公共类中进行封装
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
創建一個名為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){ //在這里對異常情況進行處理 }
}; 希望我們在學習的過程中多留意這些常用功能的封裝,進而讓自己寫程度的過程更便捷
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){ //在這里對異常情況進行處理 }
}; 希望我們在學習的過程中多留意這些常用功能的封裝,進而讓自己寫程度的過程更便捷
總結
以上是生活随笔為你收集整理的关于对发送HTTP请求以及解析服务器返回的数据操作的提取到一个公共类中进行封装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python微信语音转发方法_最全的微信
- 下一篇: 华罗庚杯数学竞赛考试时间