首页 > 代码库 > requests补充
requests补充
HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中,POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式。
这里主要讨论一下requests模仿浏览器请求的四种方式。
一、application/x-www-form-urlencoded
这种方式的传递参数,在requests中,属于get的方法。会有一个字典形式的数据,然后我们在请求的时候:
import requests url = ‘https://i.cnblogs.com/EditPosts.aspx?opt=1‘ parameter = { ‘123‘: ‘456‘, ‘234‘: ‘345‘ } r = requests.get(url, params=parameter)
这种请求方式比较常见,一般学requests的时候都会用到。
二、multipart/x-www-form-data
这种属于post中上传文件的方式,具体代码:
url = ‘https://i.cnblogs.com/EditPosts.aspx?opt=1‘ files = {‘app_id‘: (None, ‘123456‘), ‘version‘: (None, ‘2256‘), ‘platform‘: (None, ‘ios‘), ‘libzip‘: (‘libmsc.zip‘, open(‘C:\Users\danwang3\Desktop\libmsc.zip‘, ‘rb‘), ‘application/x-zip-compressed‘) } response = requests.post(url, files=files) # 代码是从http://blog.csdn.net/j_akill/article/details/43560293,拷贝来的,没有用过。
这种请求方式,在做爬虫的时候很少会遇见,如果有需求,requests也是可以实现这样的方式进行post提交的。
三、application/json
这种方式和第一种的使用率是一样的,都很高,也得益于json格式的流行。很常见的post请求数据格式。
import requests url = ‘https://i.cnblogs.com/EditPosts.aspx?opt=1‘ form_data = http://www.mamicode.com/{>
这种请求方式,代码也比较简洁,很常见。
四、text/xml
这种请求方式,是不才最近刚遇到的一种方式。之前也没有接触过,它是使用post请求方式给服务器端发送了一个带HTML标签的字符串。这种在编写的时候也比较简单,但是因为不常见,所以也困扰了比较长的时间。
url = ‘https://i.cnblogs.com/EditPosts.aspx?opt=1‘ payload = ‘‘‘ <buffalo-call> <method>getCode</method> <map> <type>java.util.HashMap</type> <string>ABC</string> <string>123654</string> <stringID</string> </map> </buffalo-call> ‘‘‘ headers = { ‘Content-Type‘: ‘text/xml;charset=UTF-8‘ } r = requests.post(url, data=http://www.mamicode.com/payload, headers=headers)>
因为这种形式的请求很少见,所以难免会造成一些困惑,记下来以便后续查询,也希望能帮助刚接触requests的小伙伴。
requests补充
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。