我正在尝试通过Scrapy发送下面的Json
{
"version": 1,
"message_type": 104,
"message_id": 14,
"body": [
{
"message_type": 104,
"chat_message": {
"mssg": "hello",
"message_type": 1,
"uid": "15373703487091",
"from_person_id": "5134266921",
"to_person_id": "3093543561",
"read": false
}
}
],
"is_background": false
}
我尝试将其发送为这样的硬编码
self.postRequest = {"version":"1",
"message_type":"104",
"message_id":"18",
"body":"[{'message_type':'104','chat_message':{'mssg':'hello','message_type':'1','uid':'15372201045381','from_person_id':'5134266921','to_person_id':'3093543561','read':'false'}}]",
"is_background":"false"}
yield FormRequest(url=response.url , formdata=self.postRequest, callback=self.parse_data,dont_filter=True, headers=self.params, cookies=self.cookies)
我获得HTTP 200状态并显示一条错误消息:未知命令server_unknown_action。
所以我不知道我在json结构上做错了什么还是错误在其他地方
答案 0 :(得分:1)
FormRequest
类用于以Content-Type: application/x-www-form-urlencoded
的形式发送数据。将JSON作为POST正文发送可能意味着您确实要发送Content-Type: application/json
。
为此,请使用常规的Request
类,将method
设置为POST
,并将json.dumps()
数据self.postRequest
放入{{1} }。
Request().body