二、接口请求构造

请求目标构造

import requests
requests.get("http://httpbin.testing-studio.com/get")

请求参数构造

  • get query:path、 query
  • post body:
    • form:
    • 结构化请求:json、xml、 json rpc
    • binary

Get Query请求

import requests


class TestDemo:
    def test_query(self):
        payload = {
            "level": 1,
            "name": "insane"
        }
        r = requests.get("http://httpbin.testing-studio.com/get", params=payload)
        print(r.text)
        assert r.status_code == 200
  • 运行结果
test_requests.py::TestDemo::test_query 

============================== 1 passed in 0.75s ==============================

Process finished with exit code 0
PASSED                            [100%]{
  "args": {
    "level": "1", 
    "name": "insane"
  }, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Host": "httpbin.testing-studio.com", 
    "User-Agent": "python-requests/2.25.0", 
    "X-Forwarded-Host": "httpbin.testing-studio.com", 
    "X-Scheme": "https"
  }, 
  "origin": "101.205.253.7", 
  "url": "https://httpbin.testing-studio.com/get?level=1&name=insane"
}

Form请求参数构造

import requests


class TestDemo:
    def test_post_form(self):
        payload = {
            "username": "Insane",
            "password": "loafer"
        }
        r = requests.post("http://httpbin.testing-studio.com/post", data=payload)
        print(r.text)
        assert r.status_code == 200
  • 测试结果
test_requests.py::TestDemo::test_post_form 

============================== 1 passed in 0.74s ==============================

Process finished with exit code 0
PASSED                        [100%]{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {
    "password": "loafer", 
    "username": "Insane"
  }, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Content-Length": "31", 
    "Content-Type": "application/x-www-form-urlencoded", 
    "Host": "httpbin.testing-studio.com", 
    "User-Agent": "python-requests/2.25.0", 
    "X-Forwarded-Host": "httpbin.testing-studio.com", 
    "X-Scheme": "https"
  }, 
  "json": null, 
  "origin": "101.205.253.7", 
  "url": "https://httpbin.testing-studio.com/post"
}

文件上传

  • files = {'file': open('report.xls', 'rb')}
  • r = requests.post(url, files=files)

header构造

  • 普通的header:
    • headers = { 'user-agent': 'my-app/0.0.1'}
    • r = requests.get(url, headers=headers)
  • cookie
    • cookies = dict(cookies _are='working')
    • r = requests.get(url, cookies=cookies)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容