Curl请求在终端中运行良好,但在转换后在python中不起作用

2024-10-04 03:27:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个curl请求,它在终端上得到“200”响应,但当我使用“https://curl.trillworks.com/”将其转换为python并使用终端发送python请求时,我得到的是“403”作为响应

卷曲请求

curl 'https://www.realestate.com.au/agent/graphql' --data-binary $'{"operationName":"SendEnquiry","variables":{"enquiry":{"id":"1375705","enquiryType":"General enquiry","propertyAddress":"","message":"Australia property prices?","contactMethod":"EMAIL","name":"sadfal","phone":"","email":"ahmadarshi@ucp.edu.pk","sourceUrl":"https://www.realestate.com.au/agent/mary-wang-1375705","referrer":""}},"query":"mutation SendEnquiry($enquiry: ConsumerEnquiryInput\u21) {\\n  sendEnquiry(enquiry: $enquiry) {\\n    status\\n    isValid\\n    message\\n    __typename\\n  }\\n}\\n"}' --compressed

Python请求

import requests

data = '${"operationName":"SendEnquiry","variables":{"enquiry":{"id":"1375705","enquiryType":"General enquiry","propertyAddress":"","message":"Australia property prices?","contactMethod":"EMAIL","name":"sadfal","phone":"","email":"ahmadarshi@ucp.edu.pk","sourceUrl":"https://www.realestate.com.au/agent/mary-wang-1375705","referrer":""}},"query":"mutation SendEnquiry($enquiry: ConsumerEnquiryInput\\u21) {\\\\n  sendEnquiry(enquiry: $enquiry) {\\\\n    status\\\\n    isValid\\\\n    message\\\\n    __typename\\\\n  }\\\\n}\\\\n"}'

response = requests.post('https://www.realestate.com.au/agent/graphql', data=data)


Tags: httpscom终端messagedatawwwvariablescurl
2条回答

这似乎是https://curl.trillworks.com/bash解析器中的一个bug,$没有传递给curl,也不是要发布的数据的一部分。如果我是你,我会给trillworks的人发一份错误报告。引用http://mywiki.wooledge.org/Quotes

$'...' : This is a Bash extension. It prevents everything except backslash escaping, and also allows special backslash escape sequences like \n for newline, \t for tab, and \xnn for bytes specified in hexadecimal.

而且curl.trillworks.com解析器错误地解析了$'…'语法

403表示请求被拒绝(禁止访问页面)。确保使用API文档验证请求需要哪些头,以及可能需要随数据一起指定哪些Content-Type

而且,似乎您的请求格式不正确$应该从字符串中排除

相关问题 更多 >