package lizhen.http;import java.io.IOException;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;public class HTTPRequest {private String errorMessage; //錯誤信息/** * HTTP請求字符串資源 * @param url URL地址 * @return 字符串資源 * */public String httpRequestString(String url) {String result = null;try {HttpEntity httpEntity = httpRequest(url);if(httpEntity != null) {result = EntityUtils.toString(httpEntity, "urf-8"); //使用UTF-8編碼}} catch (IOException e) {errorMessage = e.getMessage();}return result;}/** * HTTP請求字節數組資源 * @param url URL地址 * @return 字節數組資源 * */public byte[] httpRequestByteArray(String url) {byte[] result = null;try {HttpEntity httpEntity = httpRequest(url);if(httpEntity != null) {result = EntityUtils.toByteArray(httpEntity);}} catch (IOException e) {errorMessage = e.getMessage();}return result;}/** * 使用HTTP GET方式請求 * @param url URL地址 * @return HttpEntiry對象 * */private HttpEntity httpRequest(String url) {HttpEntity result = null;try {HttpGet httpGet = new HttpGet(url);HttpClient httpClient = new DefaultHttpClient();HttpResponse httpResponse;httpResponse = httpClient.execute(httpGet);int httpStatusCode = httpResponse.getStatusLine().getStatusCode();/* * 判斷HTTP狀態碼是否為200 * */if(httpStatusCode == HttpStatus.SC_OK) {result = httpResponse.getEntity();} else {errorMessage = "HTTP: "+httpStatusCode;}} catch (ClientProtocolException e) {errorMessage = e.getMessage();} catch (IOException e) {errorMessage = e.getMessage();}return result;}/** * 返回錯誤消息 * @return 錯誤信息 * */public String getErrorMessage() {return this.errorMessage;}}

示例代码使用HTTP Get方式请求远端资源。

httpRequestString方法适用于请求XML/JSON等文本资源。

httpRequestByteArray方法适用于请求图片/音乐等二进制资源。

当返回值为null时,调用getErrorMessage方法返回错误信息。

更多相关文章

  1. Android邮件地址正则表达式
  2. Android实现模拟点击的一种方法
  3. Android scrollview嵌套listview 滑动事件冲突的解决方法
  4. Android Studio sync 失败解决方法
  5. Android全屏的两种方法

随机推荐

  1. 自定义进度条
  2. android中MotionEvent.ACTION_CANCEL事件
  3. A Visual Guide to Android GUI Widgets
  4. Android Location 和 Sensor的使用,图片旋
  5. Android颜色渐变的分隔线(ListView)
  6. android 中 checkBox 的使用
  7. Android:霓虹灯
  8. 修改进度条ProgressBar颜色
  9. 三步搞定:Vue.js调用Android原生方法
  10. Android拦截、监听系统返回键事件