HttpClient之Get请求和Post请求示例
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包如下图:

示例代码:
- package com.wujintao.httpclient;
- import java.io.IOException;
- import java.io.InputStream;
- import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
- import org.apache.commons.httpclient.HttpClient;
- import org.apache.commons.httpclient.HttpException;
- import org.apache.commons.httpclient.HttpStatus;
- import org.apache.commons.httpclient.NameValuePair;
- import org.apache.commons.httpclient.methods.GetMethod;
- import org.apache.commons.httpclient.methods.PostMethod;
- import org.apache.commons.httpclient.params.HttpMethodParams;
- import org.junit.Test;
- public class TestCase {
- @Test
- public void testGetRequest() throws IllegalStateException, IOException {
- HttpClient client = new HttpClient();
- StringBuilder sb = new StringBuilder();
- InputStream ins = null;
- // Create a method instance.
- GetMethod method = new GetMethod("http://www.baidu.com");
- // Provide custom retry handler is necessary
- method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
- new DefaultHttpMethodRetryHandler(3, false));
- try {
- // Execute the method.
- int statusCode = client.executeMethod(method);
- System.out.println(statusCode);
- if (statusCode == HttpStatus.SC_OK) {
- ins = method.getResponseBodyAsStream();
- byte[] b = new byte[1024];
- int r_len = 0;
- while ((r_len = ins.read(b)) > 0) {
- sb.append(new String(b, 0, r_len, method
- .getResponseCharSet()));
- }
- } else {
- System.err.println("Response Code: " + statusCode);
- }
- } catch (HttpException e) {
- System.err.println("Fatal protocol violation: " + e.getMessage());
- } catch (IOException e) {
- System.err.println("Fatal transport error: " + e.getMessage());
- } finally {
- method.releaseConnection();
- if (ins != null) {
- ins.close();
- }
- }
- System.out.println(sb.toString());
- }
- @Test
- public void testPostRequest() throws HttpException, IOException {
- HttpClient client = new HttpClient();
- PostMethod method = new PostMethod("http://www.baidu.com/getValue");
- method.setRequestHeader("Content-Type",
- "application/x-www-form-urlencoded;charset=gb2312");
- NameValuePair[] param = { new NameValuePair("age", "11"),
- new NameValuePair("name", "jay"), };
- method.setRequestBody(param);
- int statusCode = client.executeMethod(method);
- System.out.println(statusCode);
- method.releaseConnection();
- }
- }
HttpClient之Get请求和Post请求示例的更多相关文章
- httpclient就是个能发送http连接的工具包,包括能发送post请求和get请求
1.httpclient就是个能发送http连接的工具包,包括能发送post请求和get请求. http 连接一次就有返回流.http是个双向的嘛.只有连接了,就会有输出返回流. 所以在执行http连 ...
- 03_Django-GET请求和POST请求-设计模式及模板层
03_Django-GET请求和POST请求-设计模式及模板层 视频:https://www.bilibili.com/video/BV1vK4y1o7jH 博客:https://blog.csdn. ...
- Ajax中get请求和post请求
我们在使用Ajax向服务器发送数据时,可以采用Get方式请求服务器,也可以使用Post方式请求服务器,那么什么时候该采用Get方式,什么时候该采用Post方式呢? Get请求和Post请求的区别: 1 ...
- slave IO流程之二:注册slave请求和dump请求
slave IO流程已经在http://www.cnblogs.com/onlyac/p/5815566.html中有介绍 这次我们要探索注册slave请求和dump请求的报文格式和主要流程. 一.注 ...
- loadrunner录制脚本如何选择使用get请求和post请求的方式
在loadrunner工具里录制脚本时常常会用到get请求和post请求,有关loadrunner常用的这两类的请求主要有: get请求: web_url 和 web_link post请求: web ...
- iOS开发网络篇—GET请求和POST请求
iOS开发网络篇—GET请求和POST请求 一.GET请求和POST请求简单说明 创建GET请求 // 1.设置请求路径 NSString *urlStr=[NSString stringWithFo ...
- 普通请求和ajax请求的区别
普通请求和ajax请求的区别? 下面的action返回一个json文件,文件内容为sts.*,data1
- iOS开发网络篇—GET请求和POST请求(转)
一.GET请求和POST请求简单说明 创建GET请求 1 // 1.设置请求路径 2 NSString *urlStr=[NSString stringWithFormat:@"http:/ ...
- GET请求和POST请求的区别
request获取请求参数 最为常见的客户端传递参数方式有两种: 浏览器地址栏直接输入:一定是GET请求: 超链接:一定是GET请求: 表单:可以是GET,也可以是POST,这取决与<form& ...
随机推荐
- 程序员找工作必备 PHP 基础面试题
1.优化 MYSQL 数据库的方法 (1) 选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置 NOT NULL, 例如’省份,性别’, 最好设置为 ENUM (2) 使用连接(JOIN)来 ...
- K:剑指offer-56 题解 谁说数字电路的知识不能用到算法中?从次数统计到数字电路公式推导,一文包你全懂
前言: 本题解整理了一位大佬在leetcode中的代码的方法,该博文致力于让所有人都能够能够看懂该方法.为此,本题解将从统计数字出现次数的解题方式开始讲起,再推导出逐位统计的解题方式,期望以循序渐进的 ...
- [模拟]Codeforces Circle of Students
Circle of Students time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- 李宏毅老师机器学习课程笔记_ML Lecture 1: 回归案例研究
引言: 最近开始学习"机器学习",早就听说祖国宝岛的李宏毅老师的大名,一直没有时间看他的系列课程.今天听了一课,感觉非常棒,通俗易懂,而又能够抓住重点,中间还能加上一些很有趣的例子 ...
- Asp.Net Core 学习教程2、使用ASP.NET Core中的RazorPages
1.创建一个Asp.Net Core Web应用程序 1.1.打开VS2019 新建项目 1.2.选好项目位置后进入线面界面,选择Web应用程序 1.3.进去的页面结构如下 Pages 文件夹:包含 ...
- Android 文本TextView底部对齐实现
前言 想要实现主体文字突出显示,前面是数值加粗,后面是单位符号,且底部对齐数值显示的效果:但是不同TextView字体大小排版后总是有些差别,无法底部对齐.百度一番后有重写TextView的,还有其它 ...
- SVM支持向量机——核函数、软间隔
支持向量机的目的是寻找一个能讲两类样本正确分类的超平面,很多时候这些样本并不是线性分布的. 由此,可以将原始特征空间映射到更高维的特征空间,使其线性可分.而且,如果原始空间是有限维,即属性数量有限, ...
- OpenCV-Python BRIEF(二进制的鲁棒独立基本特征) | 四十二
目标 在本章中,我们将看到BRIEF算法的基础知识 理论 我们知道SIFT使用128维矢量作为描述符.由于它使用浮点数,因此基本上需要512个字节.同样,SURF最少也需要256个字节(用于64像素) ...
- OpenCV-Python 直方图-2:直方图均衡 | 二十七
目标 在本节中, 我们将学习直方图均衡化的概念,并利用它来提高图像的对比度. 理论 考虑这样一个图像,它的像素值仅局限于某个特定的值范围.例如,较亮的图像将把所有像素限制在高值上.但是一幅好的图像会有 ...
- TensorFlow 神经机器教程-TensorFlow Neural Machine Translation Tutorial
seq2seq 模型在广泛的任务比如机器翻译,语音识别,文本总结中取得了巨大的成功.这个教程给读者 seq2seq 模型一个完整的理解,并且展示如何从原型建立一个有竞争力的 seq2seq 模型.我们 ...