一、HTTP请求
Http的几种请求方式对应程序包中的HttpGet, HttpHead, HttpPost, HttpPut, HttpDelete, HttpTrace, and HttpOptions,这些类均实现了HttpUriRequest接口,所以可以作为execute的执行参数使用。
根据HTTP的请格式,我们可以知道有两种方式可以为request提供参数。
第一种方式:request-line
第二种方式:request-body
因为工作中使用HttpPost请求用到了这两种请求方式,所以下面就只列出HttpPost的请求,其他请求方式的等下次用到在补上。
二、HttpPost
1、request-line方式
打印结果如下: http://192.168.1.75:23002/zyc/get/latest?region=&platNum
2、request-body
3、HttpPost两种方式结合在一起请求
三、BasicNameValuePair方法
BasicNameValuePair方法 进行参数传递时,只能使用String这种类型进行传递,事实上表单提交的get和post只能传递String类型,所以如何传递非String类型的参数,比如布尔类型、整型或者实体类。
其实第一个想到的就是将这些符合要求的类型转换成String类型就可以了,但是为什么可以直接转呢?
因为,httpPost.setEntity(new UrlEncodedFormEntity(params));这段神奇的代码
这里放到http entity里面的类型都是字节类型,HTTP协议与FTP,SMTP类似都是通过plain-text ASCII来进行CS数据通信的(不像TCP使用二进制,有历史原因,也更加节约带宽和方便调试),实际上并不存在什么String,Boolean,Integer数据类型,都是通过将byte进行ASCII编码来实现的,服务器端反序列化成String类型后,通过springMVC的框架进行解析,注意这里也需要区分提交方式,框架可能会选取适当的httpMessageConverter进行解析(这个是服务器关注的事情了)

版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/4649.html