python post请求错误

时间:2017-08-25 22:21:10

标签: python json api

我正在尝试从" belfrics.in"生成身份验证令牌。 API

    import json
    from urllib.request import Request, urlopen
    from urllib.parse import urlencode
    import requests

    belfrics_url1 = "https://india-exchange.belfrics.com:443/gateway/public/authenticate"
    belfrics_data1 = {'username': 'abc', 'password': 'xyz', 'stayLoggedIn': True}
    belfrics_headers = {'Content-Type': 'application/json'}
    belfrics_req1 = requests.post(belfrics_url1,params=belfrics_data1, headers=belfrics_headers)
    print(belfrics_req1.text)

每次我收到此回复

{"success":false,"missing_authenticators":[],"infos":[],"warnings":[],"errors":[{"JSON_DECODE_FAILED":["No error"]}],"results":{}}

我无法理解为什么会收到JSON_DECODE_FAILED错误。 我甚至尝试使用urlencode对params进行编码,但仍然遇到了同样的错误。我换了

params=belfrics_data1

params=urlencode(belfrics_data1)
好的,所以我找到了解决方案 通过改变

params=belfrics_data1

json=belfrics_data1

有人可以解释为什么会有效吗?

API文档位于:https://india-exchange.belfrics.com/api#!/common.json/authenticate

1 个答案:

答案 0 :(得分:0)

您的网站需要JSON;使用json参数代替params参数,将requests编码belfries_data1编入JSON,让网站感到高兴。