4-7 HTTP操作(一)
1 什么是HTTP协议
超文本传输协议
客户端和服务器端请求应答的标准
客户端浏览器或其他程序与Web服务器之间的应用层通信协议
无状态协议
2 HTTP工作原理
建立连接
客户端发送请求
服务器端响应请求
断开连接
3 HTTP运行流程
请求报文格式:
请求行-通用信息头-请求头-实体头-报文主体
响应报文格式:
响应行-通用信息头-响应头-实体头-报文主体
4-8 HTTP操作(二)
1 Apache HTTP API 介绍
2 发送请求和接受响应的流程
//生成一个请求对象
HttpGet httpGet = new HttpGet("http://www.baidu.com");
//生成一个Http客户端对象
HttpClient httpClient = new DefaultHttpClient();
//使用Http客户端发送请求对象
HttpResponse httpResponse = httpClient.execute(httpGet); //该方法会返回一个HttpResponse对象
//取出内容 代表一个Http消息
HttpEntity httpEntity = httpResponse.getEntity();
InputStream inputStream = httpEntity.getContent();
//进行一些IO流的操作
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String result = "";
String line = "";
while((line = reader.readLine()) = null){
result = result + line;
}
System.out.println(result);
//...
inputStream.close();
4-9 HTTP操作(三)
1 HTTP请求的方法
2 使用GET方法发送请求
get URL xxxxx?key=value&key=value...
剩下的操作和HTTP2中一样
url为拼上?key=value..之后的url
3 使用POST方法发送请求
NameValuePair nameValuePair1 = new BasicNameValuePair("name",name); //name为读取的值
NameValuePair nameValuePair2 = new BasicNameValuePair("age",age); //age为读取的值
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(nameValuePair1);
nameValuePairs.add(nameValuePair2);
//生成Entity对象
HttpEntity requestHttpEntity = new UrlEncodedFormEntity(nameValuePairs);
HttpPost httpPost = new HttpPost(url); //这里的url是baseUrl 不用拼上?key=value...
httpPost.setEntity(requestEntity);
//之后的操作一样