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方法返回错误信息。
分享到:
相关推荐
这个工程是简单将String和byte[]互相转换的Demo,有需要的可以下载
简单说说JAVA的String和byte[]的关系
C# string byte数组转换解析 C# string byte数组转换实现的过程是什么呢?C# string byte数组间的转换需要注意什么呢?C# string byte数组间转换所涉及的方法是什么呢?让我们来看看具体的内容: C# string byte数组...
当我们使用蓝牙通信或者其他通信技术,常常需要用到数据之间的转换,此工具则是java收发蓝牙数据间的hexString 与byte之间的相互转化
输入string 输出byte 16进制下的转换
Java String与Byte类型转换;用到网络编程.
delphi-string互相转化为byte数组
c#中string转换成字节byte的处理方法
java中String_十六进制String_byte[]之间相互转换
andriod Volley的HTTP网络通信,包含get、post请求,获取String/JsonObject/JsonArray数据(android客户端+java服务器端)
android byte字节数组转换十六进制字符串一个demo。里面有几种转换测试代码。我的博客地址:http://blog.csdn.net/qq_16064871。
ipv6的byte【】和string间转换类实现及检查
Android String字符串数组动态增加Android String字符串数组动态增加Android String字符串数组动态增加Android String字符串数组动态增加
byte转化工具类,可以实现byte转int,数组,string,小端取高位,低位等
更好的解决了String类型与byte类型的转换,防止出现乱码问题
std::string、char*、const char*转托管byte数组或托管字符串String
1.字符串(String)与Byte[] 的互相转换. 2.Hex(String形式)与Byte[] 的互相转换.
mac地址的byte和string间的转换java类
android用base64实现文件与string相互转换,绝对好用已测试通过。
这个工程里提供了一个工具类,是提供BCD码与String的互相转换的,有需要的可以下载