美文网首页测试
[Python系列]Python的request库

[Python系列]Python的request库

作者: 测试你个头 | 来源:发表于2017-07-26 00:30 被阅读35次

    Python经常被用来做爬虫和http接口测试,很大一部分原因就是requests库的方便易用,实际学习过程中可以对比下java的httpclient包。

    1.安装requests库

    pip install requests
    

    requests定义了常用的http方法:

    requests.get(“https://xxx”) #GET请求
    requests.post(“https://xxx”) #POST请求
    requests.put(“https://xxx/put”) #PUT请求
    requests.delete(“https://xxx/delete”) #DELETE请求
    requests.head(“https://xxx/get”) #HEAD请求
    requests.options(“https://xxx/get”) #OPTIONS请求
    ```
    以最常用的get方法为例:
    ```
    # 不带参数的get方法
    def member_in():
        ret = None
        try:
            ret = requests.get(globals.member_in_url)
        except Exception as e:
            logging.info("member_in failed : " + e.message)
            return
    
        sid = ret.content
        logging.info("member_in success " + sid)
    
        return sid
    
    # 带参数的get方法
    def member_out(sid):
        try:
            # get可通过url传参
            requests.get(globals.member_out_url + "?sid=" + sid)
            # requests.get(globals.member_out_url, params={'sid': sid})
        except Exception as e:
            logging.info("member_out failed :" + e.message)
            return
        logging.info("member_out success : " + sid)
        return
    ```
    post方法带参数:
    ```
    import requests
    import json
    
    # 键值对参数
    requests.post(globals.member_out_url, data={'intence': 'POST测试'})
    
    # 待json参数
    requests.post(globals.member_out_url, data=json.dumps({'intence': 'POST测试'}))
    ```
    设置header
    ```
    import requests
    import json
     
    data = {'test': 'testdata'}
    headers = {'content-type': 'application/json','xxx','yyy'}
     
    r = requests.post(globals.member_out_url, data=data, headers=headers)
    print(r.text)
    ```
    
    3.response对象
    requests的方法会返回一个response对象,类似java里面的HttpResponse
    ```
    r = requests.get(globals.member_out_url)
    
    logger.info(r.status_code)  #返回http状态码。
    logger.info(r.raw) #返回原始响应体,也就是 urllib 的 response 对象。
    logger.info(r.content) #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。
    logger.info(r.text) #字符串方式的响应体,会自动根据响应头部的字符编码进行解码。
    logger.info(r.headers) #以字典对象存储服务器响应头。
    ```
    
    4.其他
    cookie,鉴权等等

    相关文章

      网友评论

        本文标题:[Python系列]Python的request库

        本文链接:https://www.haomeiwen.com/subject/ykpwhxtx.html