Post和Get在HttpClient的使用
来源:互联网 发布:ubuntu 标题栏消失 编辑:程序博客网 时间:2024/05/13 19:34
HttpClient提供的主要的功能如下:
实现了所有HTTP的方法(GET、POST、PUT、HEAD等)
支持自动转向
支持HTTPS协议
支持代理服务器
HTTP请求方法中最常用的是GET方法和POST方法。
1)GET方法
GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。使用GET方法时,请求参数和对应的值附加在URL后面,利用一个问号(“”)代表URL的结尾与请求参数的开始。
// 通过GET方法获取页面信息
// 参数为对应页面的URL
public static InputStreamgetInputStreamFromUrl(String url) {
// 定义输出流变量
InputStream content = null;
try {
// 取得默认的HttpClient实例
HttpClient httpclient = new DefaultHttpClient();
// 连接到服务器
HttpResponse response = httpclient.execute(
// 创建HttpGet实例
new HttpGet(url));
// 获取数据内容
content = response.getEntity().getContent();
} catch (Exception e) {
}
// 以InputStream形式返回页面信息
return content;
}
上面的GET方法是以InputStream的形式返回页面的信息,很多情况下需要以String-Builder、String等字符串的格式。下面的方法把InputStream格式转为StringBuilder和String格式。
// 将InputStream格式转化为StringBuilder格式
private StringBuilder inputStreamToStringBuilder(InputStream is) {
// 定义空字符串
String line = "";
// 定义StringBuilder的实例total
StringBuilder total = new StringBuilder();
// 定义BufferedReader,载入InputStreamReader
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
// readLine是一个阻塞的方法,当没有断开连接的时候就会一直等待,直到有数据返回
// 返回null表示读到数据流最末尾
while ((line = rd.readLine()) != null) {
total.append(line);
}
// 以StringBuilder形式返回数据内容
return total;
}
// 将InputStream格式数据流转换为String类型
private StringinputStreamToString(InputStream is) {
// 定义空字符串
String s = "";
String line = "";
// 定义BufferedReader,载入InputStreamReader
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
// 读取到字符串中
while ((line = rd.readLine()) != null) {
s += line;
}
// 以字符串方式返回信息
return s;
}
2)POST方法
POST方法要求被请求服务器接收附在请求后面的数据,常用于提交表单。当客户端给服务器提供信息较多时可以使用POST方法。POST方法将请求参数封装在HTTP请求数据中,以名称值的形式出现,可以传输大量数据。
public void postData() {
// 创建一个新的HttpClient Post头
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http:// www.google.com");
try {
// 添加数据
List<NameValuePair>nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(newBasicNameValuePair("id", "12345"));
nameValuePairs.add(newBasicNameValuePair("stringdata", "myString"));
// 使用utf-8格式对数据进行编码
httppost.setEntity(newUrlEncodedFormEntity(nameValuePairs ,"UTF-8"));
// 执行 HTTP Post 请求
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
} catch (IOException e) {
}
}
使用HttpClient需要以下6个步骤:
步骤1 创建HttpClient的实例。
步骤2 创建某种连接方法的实例,对于get方法是GetMethod,而对于post方法是PostMethod。
步骤3 调用步骤1中创建好的实例的execute方法来执行步骤2中创建好的method实例。
步骤4 读response。
步骤5 释放连接。
步骤6 对得到的内容进行处理。
转自 http://book.2cto.com/201308/30060.html
- Post和Get在HttpClient的使用
- HttpClient 的Get和Post
- HttpClient的get和post
- java使用httpclient封装post请求和get的请求
- httpclient的post和get,httpurlconnection的post和get
- HttpClient使用Post和Get提交参数
- HttpClient使用Post和Get提交参数
- HttpClient使用Post和Get提交参数
- HttpClient使用Post和Get提交参数
- HttpClient使用Post和Get提交参数
- 使用HttpClient进行get和post请求
- HttpClient使用Post和Get提交参数
- 使用HttpClient发送GET和POST请求
- HttpClient使用Post和Get提交参数
- HttpClient get, post使用
- HttpClient Get和Post
- httpclient的get和post请求
- HttpClient的Post和Get访问网页
- 韩国进口附近的回到家地方大范甘迪发今天的余热一天的人
- 设计模式——模板模式
- iOS内存管理
- 交换类排序-快速排序
- 健康路口了法国告诉他我是人颜如玉已退回件风格的手动
- Post和Get在HttpClient的使用
- 指向学生类的指针
- nodejs常见报错及解决方法
- 基类为何需要有一个虚析构函数
- 楼人人特点如图一人u欧功哟看图好风火锅的风格化是
- symbol(s) not found for architecture armv7
- 新人报道
- 深入浅出Java Dom4j读取XML
- iOS 7 教程:定制iOS 7中的导航栏和状态栏