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. IOptions、IOptionsMonitor以及IOptionsSnapshot

    背景 ASP.NET Core引入了Options模式,使用类来表示相关的设置组.简单的来说,就是用强类型的类来表达配置项,这带来了很多好处.初学者会发现这个框架有3个主要的面向消费者的接口:IOpt ...

  2. 解决tinyint映射成boolean/byte的问题

    前言 最近受疫情的影响,公司要做一个类似一码通的系统为客户服务.由我来进行表的设计.创建表之后需要逆向生成Java的entity.mapper.mapper.xml.由于我在数据库中定义了大量 tin ...

  3. MySQL基础篇(07):用户和权限管理,日志体系简介

    本文源码:GitHub·点这里 || GitEE·点这里 一.MySQL用户 1.基础描述 在数据库的使用过程中,用户作为访问数据库的鉴权因素,起到非常重要的作用,安装MySQL时会自动生成一个roo ...

  4. 1、Spark Core所处位置和主要职责

    Spark组件是基于分布式资源引擎层(Yarn等)和分布式存储层(HDFS等)之上的一个组件,Spark本质上是一个计算引擎,负责计算的,根据不同计算场景划分出了SQL.Streaming.MLib. ...

  5. ubuntu 18.04下virtualbox安装windows虚拟机+增强功能+secureCRT

    先强调一下,我是在Ubuntu里安装windows虚拟机,如果要看如何安装linux虚拟机的话,那么你走错地方了. 我一直使用Linux系统做开发的,选择Ubuntu是因为多数常用软件对Ubuntu支 ...

  6. Android 文本TextView底部对齐实现

    前言 想要实现主体文字突出显示,前面是数值加粗,后面是单位符号,且底部对齐数值显示的效果:但是不同TextView字体大小排版后总是有些差别,无法底部对齐.百度一番后有重写TextView的,还有其它 ...

  7. 你所不知道的 C# 中的细节

    前言 有一个东西叫做鸭子类型,所谓鸭子类型就是,只要一个东西表现得像鸭子那么就能推出这玩意就是鸭子. C# 里面其实也暗藏了很多类似鸭子类型的东西,但是很多开发者并不知道,因此也就没法好好利用这些东西 ...

  8. Linux命令ip addr详解

    熟悉Linux操作系统的同学对于ip addr命令应该不陌生,知道它是用来查看本地IP地址的,除了IP地址,其它额外的信息有必要了解一下. root@test:~# ip addr1: lo: < ...

  9. shell脚本中的case条件语句介绍和使用案例

    #前言:这篇我们接着写shell的另外一个条件语句case,上篇讲解了if条件语句.case条件语句我们常用于实现系统服务启动脚本等场景,case条件语句也相当于if条件语句多分支结构,多个选择,ca ...

  10. 基于Doc2vec训练句子向量

    目录 一.Doc2vec原理 二.代码实现 三.总结   一.Doc2vec原理 前文总结了Word2vec训练词向量的细节,讲解了一个词是如何通过word2vec模型训练出唯一的向量来表示的.那接着 ...