读书人

HttpClient的基础施用

发布时间: 2012-11-05 09:35:12 作者: rapoo

HttpClient的基础应用

HttpClient是用来发送HTTP请求的,也就是HTTP的客户端。任何HTTP请求都可以由它模拟出来。

?

1.发送GET请求:

                HttpClient httpClient = new DefaultHttpClient();                // 初始化GET请求                HttpGet get = new HttpGet("http://localhost:8080");                // 执行GET请求                HttpResponse response = httpClient.execute(get);                // 获取请求返回的数据HttpEntity entity = response.getEntity();if (entity != null) {entity = new BufferedHttpEntity(entity);InputStream in = entity.getContent();byte[] read = new byte[1024];byte[] all = new byte[0];int num;while ((num = in.read(read)) > 0) {byte[] temp = new byte[all.length + num];System.arraycopy(all, 0, temp, 0, all.length);System.arraycopy(read, 0, temp, all.length, num);all = temp;}System.out.println(new String(all));in.close();}                // 一次GET请求结束get.abort();

?

2.发送POST请求

HttpClient httpClient = new DefaultHttpClient();HttpPost get = new HttpPost("http://localhost:8080/xxxxxx");//创建表单参数列表  List<NameValuePair> qparams = new ArrayList<NameValuePair>(); // 添加参数qparams.add(new BasicNameValuePair("id", "5"));//填充表单  get.setEntity(new UrlEncodedFormEntity(qparams,"UTF-8"));// 执行POST请求HttpResponse response = httpClient.execute(get);HttpEntity entity = response.getEntity();// ......// 接下来就与GET一样了

?

3.自己封装请求的输入流

HttpClient httpClient = new DefaultHttpClient();// 封装输入流ContentProducer cp = new ContentProducer() {public void writeTo(OutputStream outstream) throws IOException {Writer writer = new OutputStreamWriter(outstream, "UTF-8");writer.write("write the stream by myself");writer.flush();}};HttpEntity requestEntity = new EntityTemplate(cp);HttpPost httppost = new HttpPost("http://localhost:8080/xxx");httppost.setEntity(requestEntity);HttpResponse response = httpClient.execute(httppost);HttpEntity entity = response.getEntity();// 接下来与GET/POST一样了。

读书人网 >编程

热点推荐