zoukankan      html  css  js  c++  java
  • python接口测试-认识POST请求

    上午和一个大神交流了一下,给我了一点建议:多做笔记,勤复盘;及时记录自己,最好的提升不是来自于别人,而是来自于自身。我觉得挺有道理的,分享出来。共勉

    说正事。

    今天把post请求的大概内容看了一下。虽然都是post请求,但是还是分类的。看下边。。

    一、POST请求,有请求参数params,body有data时

    import requests
    
    host = "https://***.org/"                                        #地址可以自己切换,建议一开始找个请求体内容少一点的地址
    endpoint = "post"
    url = "".join([host,endpoint])
    
    params = {"show_env":1}
    data = {                                                  #如果data中还有更多的参数时就继续往里边添加,注意格式与细节
        "a":"嘻哈",
        "b":"from-data"
        }
    
    r = requests.post(url,params=params,data=data)
    print(r.headers)

    二、POST请求,body中有json数据时

    import requests
    import json
    
    host = "https://***.org/"
    endpoint = "post"
    url = "".join([host,endpoint])                                            #将host与endpoint进行合并
    
    data = {                                                                  #请求中的data的参数值
        "info":{"code":1,"sex":"","id":1900,"name":"嘻哈"},
        "code":1,
        "name":"嘻哈","sex":"",
        "data":[{"code":1,"sex":"","id":1900,"name":"嘻哈"},
                {"code":1,"sex":"","id":1900,"name":"嘻哈"}],
        "id":1900
        }
    
    r = requests.post(url,data = json.dumps(data))                             #将data(字典)表单形式数据进行序列化
    r = requests.post(url,json = data)                                         #不用序列化,直接转型,使用方便
    
    print(r.headers)                                                           #打印响应的headers信息
    print(r.text)                                                              #打印响应的响应体信息
    resp = r.json()
    print(resp["json"])                                                        #将响应的信息已json串的形式展示出来

    三、POST请求,普通上传文件files

    import requests
    
    from requests.packages.urllib3.exceptions import InsecureRequestWarning    # 禁用安全请求警告
    requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
    
    
    host = "https://***.org/"
    endpoint = "post"
    params = {"show_env":1}
    url = "".join([host,endpoint])
    
    files = {"files":open(r"F:	est.txt","rb")}                                  # 1、以rb方式获取test.txt文件的内容。
                                                                                 # 关于"”与关键字如 r t n 结合无法读取文件内容时,可以使用“/”、“\”、“r"F:	est.txt"”方法解决。
    files = {"files":(r"F:	est.txt","xixihaha")}                                # 2、直接将目标文件内容xixihaha通过文件test.txt进行上传。
    files = {"files":(open("F:嘻哈.jpg","rb"))}                    # 3、以rb方式上传jpg格式的图片
    files = {"files":("嘻嘻哈哈.jpg",open("F:嘻哈.jpg","rb"),"image/png")}        # 自定义图片上传格式,将图片以png格式上传,还可以自定义上传的文件的路径、文件类型、文件名称。以列表形式上传单个文件的方式

    files = [ ("field1",(r"F: est.txt",open(r"F: est.txt","rb"))), # 以列表+元祖的方式实现多个文件的上传. 上传了test.txt和png格式的嘻嘻哈哈.png图片 ("fidld2",(r"嘻嘻哈哈.jpg",open("F:嘻哈.jpg","rb"),"image/png")) ] r = requests.post(url,files=files,verify=False)                  # verify=False这个东西是为了解决Requests请求时需要对SSL认证的问题。没他就认证不通过,报错了 print(r.headers) print(r.text)

    以上只是一个列子,当然有列子就可以照葫芦画瓢。不管再多的东西都可以往里边套。请求的时候有些需要配合区注释掉才能正常请求

    主要是集中文件上传的方式需要了解一下,备注写的多,主要还是以后自己看的方便吧 。

    有补充的期待评论区留言,我一定会补全的。

    愿你、愿我,路越走越宽

  • 相关阅读:
    drf 权限流程解析
    drf 认证流程解析
    drf 版本解析
    Django REST framework初识
    RESTful规范
    Flask框架
    Flask框架解析目录
    hdu
    hdu 6113 度度熊的01世界(结构体的赋值问题)
    hdu 6114 chess(排列组合)
  • 原文地址:https://www.cnblogs.com/Zhan-W/p/9825643.html
Copyright © 2011-2022 走看看