HttpClient的支持在HTTP/1.1规范中定义的所有的HTTP方法:GET, HEAD, POST, PUT, DELETE, TRACE 和 OPTIONS。每有一个方法都有一个对应的类:HttpGet,HttpHead,HttpPost,HttpPut,HttpDelete,HttpTrace和HttpOptions。所有的这些类均实现了HttpUriRequest接口,故可以作为execute的执行参数使用。请求URI是能够应用请求的统一资源标识符。 HTTP请求的URI包含一个协议计划protocol scheme,主机名host name,,可选的端口optional port,资源的路径resource path,可选的查询optional query和可选的片段optional fragment。

head,put,delete,trace HttpClient支持这些方法,
大多数浏览器不支持这些方法,原因是Html 4中对 FORM 的method方法只支持两个get和post,很多浏览器还都依然是基于html4的。

通常会在JAVA中通过代码调用URL进行远端方法调用,这些方法有的是Get请求方式的,有的是POST请求方式的,为此,总结一例,贴出以便查阅。

依赖JAR包如下图:

示例代码:

  1. package com.wujintao.httpclient;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
  5. import org.apache.commons.httpclient.HttpClient;
  6. import org.apache.commons.httpclient.HttpException;
  7. import org.apache.commons.httpclient.HttpStatus;
  8. import org.apache.commons.httpclient.NameValuePair;
  9. import org.apache.commons.httpclient.methods.GetMethod;
  10. import org.apache.commons.httpclient.methods.PostMethod;
  11. import org.apache.commons.httpclient.params.HttpMethodParams;
  12. import org.junit.Test;
  13. public class TestCase {
  14. @Test
  15. public void testGetRequest() throws IllegalStateException, IOException {
  16. HttpClient client = new HttpClient();
  17. StringBuilder sb = new StringBuilder();
  18. InputStream ins = null;
  19. // Create a method instance.
  20. GetMethod method = new GetMethod("http://www.baidu.com");
  21. // Provide custom retry handler is necessary
  22. method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
  23. new DefaultHttpMethodRetryHandler(3, false));
  24. try {
  25. // Execute the method.
  26. int statusCode = client.executeMethod(method);
  27. System.out.println(statusCode);
  28. if (statusCode == HttpStatus.SC_OK) {
  29. ins = method.getResponseBodyAsStream();
  30. byte[] b = new byte[1024];
  31. int r_len = 0;
  32. while ((r_len = ins.read(b)) > 0) {
  33. sb.append(new String(b, 0, r_len, method
  34. .getResponseCharSet()));
  35. }
  36. } else {
  37. System.err.println("Response Code: " + statusCode);
  38. }
  39. } catch (HttpException e) {
  40. System.err.println("Fatal protocol violation: " + e.getMessage());
  41. } catch (IOException e) {
  42. System.err.println("Fatal transport error: " + e.getMessage());
  43. } finally {
  44. method.releaseConnection();
  45. if (ins != null) {
  46. ins.close();
  47. }
  48. }
  49. System.out.println(sb.toString());
  50. }
  51. @Test
  52. public void testPostRequest() throws HttpException, IOException {
  53. HttpClient client = new HttpClient();
  54. PostMethod method = new PostMethod("http://www.baidu.com/getValue");
  55. method.setRequestHeader("Content-Type",
  56. "application/x-www-form-urlencoded;charset=gb2312");
  57. NameValuePair[] param = { new NameValuePair("age", "11"),
  58. new NameValuePair("name", "jay"), };
  59. method.setRequestBody(param);
  60. int statusCode = client.executeMethod(method);
  61. System.out.println(statusCode);
  62. method.releaseConnection();
  63. }
  64. }

HttpClient之Get请求和Post请求示例的更多相关文章

  1. httpclient就是个能发送http连接的工具包,包括能发送post请求和get请求

    1.httpclient就是个能发送http连接的工具包,包括能发送post请求和get请求. http 连接一次就有返回流.http是个双向的嘛.只有连接了,就会有输出返回流. 所以在执行http连 ...

  2. 03_Django-GET请求和POST请求-设计模式及模板层

    03_Django-GET请求和POST请求-设计模式及模板层 视频:https://www.bilibili.com/video/BV1vK4y1o7jH 博客:https://blog.csdn. ...

  3. Ajax中get请求和post请求

    我们在使用Ajax向服务器发送数据时,可以采用Get方式请求服务器,也可以使用Post方式请求服务器,那么什么时候该采用Get方式,什么时候该采用Post方式呢? Get请求和Post请求的区别: 1 ...

  4. slave IO流程之二:注册slave请求和dump请求

    slave IO流程已经在http://www.cnblogs.com/onlyac/p/5815566.html中有介绍 这次我们要探索注册slave请求和dump请求的报文格式和主要流程. 一.注 ...

  5. loadrunner录制脚本如何选择使用get请求和post请求的方式

    在loadrunner工具里录制脚本时常常会用到get请求和post请求,有关loadrunner常用的这两类的请求主要有: get请求: web_url 和 web_link post请求: web ...

  6. iOS开发网络篇—GET请求和POST请求

    iOS开发网络篇—GET请求和POST请求 一.GET请求和POST请求简单说明 创建GET请求 // 1.设置请求路径 NSString *urlStr=[NSString stringWithFo ...

  7. 普通请求和ajax请求的区别

    普通请求和ajax请求的区别? 下面的action返回一个json文件,文件内容为sts.*,data1

  8. iOS开发网络篇—GET请求和POST请求(转)

    一.GET请求和POST请求简单说明 创建GET请求 1 // 1.设置请求路径 2 NSString *urlStr=[NSString stringWithFormat:@"http:/ ...

  9. GET请求和POST请求的区别

    request获取请求参数 最为常见的客户端传递参数方式有两种: 浏览器地址栏直接输入:一定是GET请求: 超链接:一定是GET请求: 表单:可以是GET,也可以是POST,这取决与<form& ...

随机推荐

  1. 搭建XSS测试平台

    XSS测试平台是测试XSS漏洞获取cookie并接收web页面的平台,XSS可以做js能做的所有事情,包括但不限于窃取cookie,后台增删文章.钓鱼.利用xss漏洞进行传播.修改网页代码.网站重定向 ...

  2. 74. pNextID、pNextVal、pNID的区别

    pNextID是平台调用单个新增组件的时候调用的: pNextVal是平台批量新增的时候调用: pNID应该是自己写的 :

  3. canvas绘制折线图

    效果图: 重难点: 1.画布左上角的顶点的坐标为(0 ,0),右下角的坐标最大,与平常思维相反 2.数据的处理 html代码: <!DOCTYPE html><html lang=& ...

  4. WSL下卸载了zsh / fish后无法启动bash解决方案

    最近在鼓捣wsl,感觉自己用还是蛮好用的.听说1903要更新新的cmd,还蛮期待的 解决步骤: 建议先下载个everything , windows下非常好用的文件查找软件. 启动后搜索.bashrc ...

  5. 毕业设计——基于ZigBee的智能窗户控制系统的设计与实现

    题目:基于物联网的智能窗户控制系统的设计与实现 应用场景:突降大雨,家里没有关窗而进水:家中燃气泄漏,不能及时通风,威胁人身安全,存在火灾的隐患:家中窗户没关,让坏人有机可乘.长时间呆在人多.封闭的空 ...

  6. 学习GAN必须阅读的10篇论文

    本文转载自:魔图互联.欢迎访问网站查看详细教程:Tensorflow(pytorch)系列教程 生成对抗网络是深度学习中最有趣和最受欢迎的应用之一.本文将列出 10 篇关于 GAN 的论文,这些论文详 ...

  7. adb的基本安装和介绍(一)

    一,什么是adb? adb全称为Android Debug Bridge,就是起到调试桥的作用.顾名思义,adb就是android sdk 的一个工具 借助adb工具,我们可以管理设备或手机模拟器的状 ...

  8. [问题]java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized...

    java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized... 这个问题一般是因为升级MSYQL ...

  9. liunx 上安装redis

    目录 1.安装包 2.解压:tar xzf redis-5.0.5.tar.gz 3.安装 4.编辑redis.conf文件 5.配置密码 6.启动配置: 7.配置公网链接 8.杀掉redis进程 9 ...

  10. 蓝桥杯 K好数(Java)

    越来越觉得自己菜,一道简单的动态规划写不出来,题解也是看了很多份才看懂了,所以尽量以图表的方式写了题解,希望我的题解能帮到其他人吧.(;´Д`) 首先是题目: 输入描述: 输入包含两个正整数,K和L. ...