欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

HttpClients下载与入门,httpclients入门,Http协议的重要性相信

来源: javaer 分享于  点击 30380 次 点评:4

HttpClients下载与入门,httpclients入门,Http协议的重要性相信


Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我 们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮 性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会更加深入。

你可以从官方获取最新版本:http://hc.apache.org/index.html。也可以从这里获取官方使用入门示例。以下示例,输出所有头内容,和页面返回的内容。

import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.apache.http.Header;import org.apache.http.HttpEntity;import org.apache.http.NameValuePair;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.message.BasicNameValuePair;public class QuickStart { public static void main(String[] args) {  try {   CloseableHttpClient httpclient = HttpClients.createDefault();   HttpGet httpGet = new HttpGet("http://javacui.com");   CloseableHttpResponse response1 = httpclient.execute(httpGet);   try {       System.out.println(response1.getStatusLine()); // 读取状态信息       Header[] hd = response1.getAllHeaders(); // 所有头信息       for(Header h : hd){        System.out.println(h.getName() + ":" + h.getValue());       }       HttpEntity entity1 = response1.getEntity();       System.out.println(EntityUtils.toString(entity1));   } finally {       response1.close();   }   HttpPost httpPost = new HttpPost("http://javacui.com");   List <NameValuePair> paras = new ArrayList <NameValuePair>(); // 设置表单参数   paras.add(new BasicNameValuePair("username", "name"));   paras.add(new BasicNameValuePair("password", "pass"));   httpPost.setEntity(new UrlEncodedFormEntity(paras));   CloseableHttpResponse response2 = httpclient.execute(httpPost);   try {    System.out.println(response1.getStatusLine()); // 读取状态信息       Header[] hd = response1.getAllHeaders(); // 所有头信息       for(Header h : hd){        System.out.println(h.getName() + ":" + h.getValue());       }       HttpEntity entity1 = response1.getEntity();       System.out.println(EntityUtils.toString(entity1));   } finally {       response2.close();   }  } catch (Exception e) {   e.printStackTrace();  } } /**  * 读取流  */ public static byte[] readStream(InputStream inStream) throws Exception {  ByteArrayOutputStream outSteam = new ByteArrayOutputStream();  byte[] buffer = new byte[1024];  int len = -1;  while ((len = inStream.read(buffer)) != -1) {   outSteam.write(buffer, 0, len);  }  outSteam.close();  inStream.close();  return outSteam.toByteArray(); }} // 结束

GET和POST请求都输出了获取到的服务器内容,POST请求设置了请求的表单参数。

相关栏目:

用户点评