Scrapy payload 报错400

我是研究僧i 提交于 2019-12-11 19:16:05

首先Scrapy 发送payload请求格式如下:

    def start_requests(self):
        querystr = {
            "ctoken": "U-ang1zmpP6c3VO4",
            "sceneKey": "DEFAULT",
            "pdKey": "P_ECTBILL_QUOTATION1",
        }
        payload = {
            "executeKey": "E_QUOTATION-RATE_QUERY_NEW",
            "pdKey": "P_ECTBILL_QUOTATION1",
            "requestJson": '[{"acceptBankNo":"313143005157","bankLevel":"04","beginReceiptMoney":"0","endReceiptMoney":"500000","billReceiptMoney":"20000","expireDay":1577783940394,"billBizType":"KHT"}]',
            "sceneKey": "DEFAULT",
        }
        data = json.dumps(payload)   # payload格式需要用dumps转成string
        api = self.url + urlencode(querystr)   # Query string parameter
        yield Request(url=api, method='POST', body=data, callback=self.parse, headers=self.headers)

 

报错的原因是因为header中有带参数 HOST, Content-Length, 屏蔽掉这两个参数就行了,最好是养成习惯header中都不要带这两个参数 .

原因可参考:https://stackoverflow.com/questions/42248903/scrapy-post-request-not-working-400-bad-request

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!