V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Ginson
V2EX  ›  Python

代码和 API 调试工具返回结果不同

  •  
  •   Ginson · 2019-01-21 13:27:29 +08:00 · 1604 次点击
    这是一个创建于 2132 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在使用百度统计 API 的过程中发现同样请求参数的情况下,代码返回的结果和 API 调试工具返回的结果不同。

    通过 API 工具(我用的是 Insomia )请求时能返回正常结果,但用代码请求时,日期参数不能正常生效。

    日期参数格式、类型都正确,不知道问题出在哪里,求解

    代码请求

    def getresult(start, end, method, metrics, **kw):
        base_url = "https://api.baidu.com/json/tongji/v1/ReportService/getData"
        body = {"header": {"account_type": 1, "password": "", "token": "", "username": ""},
                "body": {"siteId": siteId, "method": method, "start_date ": start, "end_date": end, "max_results": 0, "metrics": metrics, "gran": "day"}}
        for key in kw:
            body['body'][key] = kw[key]
        data = json.dumps(body)
        res = requests.post(base_url, data)
        res = json.loads(res.text)
        return res
    

    通过代码请求返回的结果如下图

    image

    虽然传入的日期是 20190119 ,但返回的数据日期是默认的 20190121 (当天) ,等于日期参数没生效

    API 工具请求

    同样参数,返回结果则正常 image

    Ho
        1
    Ho  
       2019-01-21 14:12:32 +08:00
    两个的请求参数肯定有不一样的地方 注意请求头
    用 charles 模拟
    samcode
        2
    samcode  
       2019-01-21 14:16:33 +08:00   ❤️ 1
    "start_date ": start, "end_date": end, 多了个空格
    xiaoxinxiaobai
        3
    xiaoxinxiaobai  
       2019-01-21 14:22:18 +08:00 via Android
    请求参数不一样,具体可以看两个请求的 header,目测 content-type 不一样,一个 form,一个 json
    Ginson
        4
    Ginson  
    OP
       2019-01-21 14:47:35 +08:00
    @samcode
    感谢…确实没注意到,一直在看是不是参数名拼写错了、格式是不是不对,万万没想到

    @Ho
    @xiaoxinxiaobai

    感谢两位,我尝试单独构造过 header 再请求,结果一样的。
    实际原因是 2L samcode 兄弟说的空格问题[扶额]

    非常抱歉打扰大家了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1383 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:30 · PVG 01:30 · LAX 09:30 · JFK 12:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.