(一)get()方法
查看源码,如下:
1 def get(self, url, params, **kwargs): 2 r"""Sends a GET request. 3 4 :param url: URL for the new :class:`Request` object. 5 :param params: (optional) Dictionary, list of tuples or bytes to send 6 in the body of the :class:`Request`. 7 :param \*\*kwargs: Optional arguments that ``request`` takes. 8 :return: :class:`Response <Response>` object 9 :rtype: requests.Response 10 """ 11 12 kwargs.setdefault('allow_redirects', True) 13 return self.request('GET', url, **kwargs)
params参数
1、可以是字典,也可以是嵌套元组的列表;通过params传递的参数会附加到url。
2、如果使用data或json来发送接口参数,请求不会成功。(参数不会附加到url)
注意:基于get请求的特点,请求参数可以直接跟在URL之后。
(二)post()方法
查看源码,如下:
1 def post(self, url, data=None, json=None, **kwargs): 2 r"""Sends a POST request. Returns :class:`Response` object. 3 4 :param url: URL for the new :class:`Request` object. 5 :param data: (optional) Dictionary, list of tuples, bytes, or file-like 6 object to send in the body of the :class:`Request`. 7 :param json: (optional) json to send in the body of the :class:`Request`. 8 :param \*\*kwargs: Optional arguments that ``request`` takes. 9 :rtype: requests.Response 10 """ 11 12 return self.request('POST', url, data=data, json=json, **kwargs)
何时使用data参数或json参数,需要根据实际的接口所支持的数据类型进行选择。
data参数
1、接收一个字典类型的数据,存放到请求体中,然后发送给服务器(参数需是字典类型)。
2、向服务器提交form表单时就可以使用data参数。
大多数post请求的接口默认支持参数类型Content-Type为application/x-www-form-urlencoded, 它告诉我们请求的接口参数需要传递一个form表单,那么我们往往是通过构造一个字典来传递form表单的,所以当我们向服务器提交form表单时就可以使用data参数,它会接收一个字典类型的数据,存放到请求体中,然后发送给服务器(参数需是字典类型)。
json参数
1、访问的接口支持content_type为application/json格式的数据类型,就可以通过json来传递接口参数
2、参数可以是字典也可以是json类型