• python实现以application/json格式为请求体的http post请求


    • 接口传递数据格式类型为json格式,如下图抓包查看

    • Python实现脚本请求接口并以中文打印接口返回的数据
     1 import json
     2 import requests
     3 
     4 url = "https://....//Api/User/...."
     5 values = {'token':'4CAC044621D1EE5DC8D573BA019EE4FD2CD87859','lang':'jp'}
     6 # 打印values的数据类型,输出<class 'dict'>
     7 print(type(values))
     8 print(values)
     9 # json.dump将python对象编码成json字符串
    10 values_json = json.dumps(values)
    11 # 打印编码成json字符串的values_json的数据类型,输出<class 'str'>
    12 print(type(values_json))
    13 print(values_json)
    14 # requests库提交数据进行post请求
    15 req = requests.post(url, data=values_json)
    16 # 打印Unicode编码格式的json数据
    17 print(req.text)
    18 # 使用json.dumps()时需要对象相应的类型是json可序列化的
    19 change = req.json()
    20 # json.dumps序列化时对中文默认使用ASCII编码,如果无任何配置则打印的均为ascii字符,输出中文需要指定ensure_ascii=False
    21 new_req = json.dumps(change, ensure_ascii=False)
    22 # 打印接口返回的数据,且以中文编码
    23 print(new_req)
    • 执行脚本,接口返回数据

    • 使用到的函数

    json.dump()                      将python对象编码成json字符串

    requests.post(url, data)    requests库提交数据进行post请求

    req.json()                          在使用json.dumps前将对象req进行json可序列化

    json.dumps(change, ensure_ascii=False)  json.dumps序列化数据并输入中文编码数据

    • 脚本执行过程报错记录,requests爬虫时开启代理会报以下错误

              requests.exceptions.SSLError: HTTPSConnectionPool(host='api.****.cn', port=443):Max retries exceeded with url: //Api/User/getStaffList (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])")))

  • 相关阅读:
    dotnetcharting 生成柱状图,饼图等统计图
    asp.net 前后台相互调用
    SQL基础和高级(语法格式)总结二
    自己动手JQuery插件开发
    SQL基础之创建数据库,表,架构
    SQL基础和高级(语法格式)总结一
    ado.net总结
    [Nescafé 26] 小猫爬山&&售货员的难题&&区间众数(随机化大法好)
    POJ2774 后缀自动机&后缀数组
    【方向学习】单片机
  • 原文地址:https://www.cnblogs.com/kristin/p/10342959.html
Copyright © 2020-2023  润新知