python接口测试学习—GET、POST请求

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/teachskyLY/article/details/84404124

python接口测试学习—GET、POST请求

import requests
import json

使pip安装:

pip install requests

安装过后通过以下代码测试一下返回200状态码代表成功了

ro1 = requests.get("https://www.baidu.com")
print( ro1.status_code)

GET

1、GET请求只支持url编码,
2、GET对参数的数据类型get 只接受ASCII编码,
3、GET请求参数会被完整保留在浏览器历史记录里,
4、GET请求直接在URL里进行参数传递(有长度限制),
5、对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据)

#GET请求
import requests
import json


payload = {'key1':'name','key2':'sex'}

r1 = requests.get('http://httpbin.org/get',params = payload)
print(r1.url) #获取请求内容
print(r1.text)#获取相应内容

输出内容


http://httpbin.org/get?key1=name&key2=value2
{
  "args": {
    "key1": "name", 
    "key2": "value2"
  }, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Connection": "close", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.19.1"
  }, 
  "origin": "218.0.220.179", 
  "url": "http://httpbin.org/get?key1=name&key2=value2"
}

POST

POST请求支持多种编码,
对于参数的数据类型无限制,
POST中的请求参数不会被保留,
POST放在Request body中进行参数传递(无长度限制),
对于POST方式的请求,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)

content= {'1key1':'name','2key2':'sex'}
r2 = requests.post('http://httpbin.org/post',data=content )
#等于r2 = request.post('http://httpbin.org/post',data={'key1':'name','key2':'sex'} )
print(r2.url) 
print(r2.text)


输出内容
传递一个字典给 data 参数就,数据字典在发出请求时会自动编码为表单形式:


{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {
    "1key1": "name", 
    "2key2": "sex"
  }, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Connection": "close", 
    "Content-Length": "20", 
    "Content-Type": "application/x-www-form-urlencoded", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.19.1"
  }, 
  "json": null, 
  "origin": "218.0.220.179", 
  "url": "http://httpbin.org/post"
}

url='http://httpbin.org/post'

data={"ua":"13700002000",
      "pw":"12qwaszx",
      "ct":12
      }

s =requests.post(url,data=json.dumps(data))         

print (s.text)
#----------
#requests中也带有带有一个内置的json解码器,将返回的内容转换为dict
#------------
print (type(s.json())) 
输出内容
{
  "args": {}, 
  "data": "{\"ua\": \"13700002000\", \"pw\": \"12qwaszx\", \"ct\": 12}", 
  "files": {}, 
  "form": {}, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Connection": "close", 
    "Content-Length": "49", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.19.1"
  }, 
  "json": {
    "ct": 12,  
    "pw": "12qwaszx", 
    "ua": "13700002000"
  }, 
  "origin": "218.0.220.179", 
  "url": "http://httpbin.org/post"
}

<class 'dict'>

其他

#只用异常时才会启用抛出异常
ro1.raise_for_status()

#获取cookies
ro1.cookies

猜你喜欢

转载自blog.csdn.net/teachskyLY/article/details/84404124