Curl-запрос работает нормально в терминале, но не работает в Python после преобразования - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть запрос curl, который возвращает мне ответ '200' на терминале, но когда я конвертирую его в python, используя 'https://curl.trillworks.com/', и отправляю запрос python, используя терминал, я получаю' 403 'в качестве ответа.

Curl Request

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 Request

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)

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

похоже, что это ошибка в парсере https://curl.trillworks.com/ bash - $ не передается в curl и не является частью данных, подлежащих публикации.Я бы отправил баг-репорт ребятам из trillworks на вашем месте.цитирование http://mywiki.wooledge.org/Quotes:

$ '...': это расширение Bash.Он предотвращает все, кроме экранирования обратной косой черты, а также позволяет использовать специальные escape-последовательности обратной косой черты, такие как \ n для новой строки, \ t для табуляции и \ xnn для байтов, указанных в шестнадцатеричном формате.

и синтаксический анализатор curl.trillworks.com неправильно анализирует синтаксис $ '...'.

0 голосов
/ 26 сентября 2019

403 означает, что запрос отклонен (вам запрещен доступ к странице).Убедитесь, что вы проверили с помощью документации API, какие заголовки необходимы для запроса и, возможно, что Content-Type необходимо указать вместе с данными.

Кроме того, кажется, что вы могли искажать запрос -$ скорее всего следует исключить из строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...