zoukankan      html  css  js  c++  java
  • python的requests库怎么发送带cookies的请求

     背景:

      在用robot做接口自动化时,有一个查询接口需要用到登录后返回的token等信息作为cookies作为参数一起请求(token是在返回体中,并不在cookies中),

    刚好create session关键字有cookies参数,但是传cookies参数时,会报错ValueError: need more than 1 value to unpack,耗费了很久没有解决

    ${login_cookies}=    Create Dictionary    token=ef2f3216-a63c-4a84-93e1-86984812963e    memberNo=486497018462720
        Create Session    ${alias}    ${member_host}    headers=${Content-Type}    cookies=${login_cookies}

     解决:

    所以计划自己写方法,将cookies手动添加到post请求中

     将cookies直接写成字典,或者使用cookies = dict(token='24337265-335f-4258-bb65-aa294ab05d28',memberNo='486497018462720')转为为字典

    #coding:utf-8
    
    import requests
    
    
    def post_cookies():
        '''
        发送带有cookies的post请求,
        :return:
        '''
        # cookies = dict(token='24337265-335f-4258-bb65-aa294ab05d28',memberNo='486497018462720')
        cookies = {"token": "24337265-335f-4258-bb65-aa294ab05d28", "memberNo":"486497018462720"}
        payload = {"memberNo": "486497018462720"}
        r = requests.post("http://bnetweixin.yto56test.com/member/memberCoreApi/queryIdentityUserInfo", json=payload,cookies=cookies)
        print r.cookies
        print r.content
    
    
    post_cookies()

     测试:

    payload参数如果是json格式的,一定要将payload传递给json参数,写成data=json.dumps(payload)或者data=payload都不能正常请求,如下图:

     后续:

      因为token等信息是上一个接口的返回体,所以需要将这个post_cookies方法改造一下,将token和memberNo作为形参

  • 相关阅读:
    linux hosts文件详+mac主机名被莫名其妙修改
    WPF整理--动态绑定到Logical Resource
    WPF整理-使用逻辑资源
    WPF整理-自定义一个扩展标记(custom markup extension)
    WPF整理-XAML访问静态属性
    WPF整理-为控件添加自定义附加属性
    WPF整理-为User Control添加依赖属性
    使用MS Test进行单元测试
    WPF整理-XAML构建后台类对象
    毕业那点事儿--回顾在大学这7年
  • 原文地址:https://www.cnblogs.com/gcgc/p/10102371.html
Copyright © 2011-2022 走看看