HttpClient常用HttpGet和HttpPost这两个类,分别对应Get方式和Post方式。
HttpPost方法提交HTTP POST请求,需要使用HttpPost类的setEntity方法设置请求参数。参数则必须用NameValuePair[]数组存储。
get方式:以URL字串本身传递数据参数,在服务器端可以从'QUERY_STRING'这个变量中直接读取,效率较高,但缺乏安全性,也无法来处理复杂的数据。
post方式:就传输方式讲参数会被打包在数据包中传输,从CONTENT_LENGTH这个环境变量中读取,便于传送较大一些的数据,同时因为不暴露数据在浏览器的地址栏中,安全性相对较高,但这样的处理效率会受到影响。
表单提交中的post和get方法的区别:
1.get是从服务器上查询/获取数据,post是向服务器传输数据。
2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5. get安全性非常低,传输数据可见,post安全性较高,传输数据不可见,但通过抓包工具post传递中的参数也可以看到,所以理论上也不是安全的。
6. get是Form的默认方法。