POST-запрос работает на POSTMAN, но не на Python и cURL - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь получить Цены и доступность информации от Homeaway.com для недвижимости. У них есть API publi c для получения этой информации. Если мы проверяем эту страницу правильно, мы получим API. В то время как я делаю POST-запрос через POSTMAN, он выдает данные в правильном формате, но с тем же кодом, когда я вставляю из Postman в Jupyter Notebook ошибку 403. Я попытался использовать cURL и Python 3.

. Я думаю, что есть проблема с правильным форматированием для элемента полезной нагрузки.

Это код, который я получаю от POSTMAN для Python Модуль запроса -

import requests

url = "https://www.homeaway.co.uk/pdp/graphql"

payload = "{\"query\":\"\\n    query priceDetails($createTravelerCheckoutRequest: CreateTravelerCheckoutRequest) {\\n        priceDetails(createTravelerCheckoutRequest: $createTravelerCheckoutRequest) {\\n            notes {\\n                description\\n            }\\n            totals {\\n                title\\n                amount\\n                tooltip\\n                subItems {\\n                    title\\n                }\\n            }\\n            checkoutUrl\\n            instantBooking\\n            dueNow {\\n                title\\n                amount\\n                tooltips {\\n                    title\\n                    amount\\n                    tooltip\\n                }\\n            }\\n            payments {\\n                title\\n                amount\\n                paidText\\n                infoText\\n                status\\n                viewUrl\\n            }\\n            averageNightlies {\\n                perNightCost {\\n                    currency\\n                    amount\\n                    localized\\n                }\\n                type\\n            }\\n            edapEventJson\\n            edapQuoteSuccess\\n            edapPriceQuotePresented\\n            lineItems {\\n                title\\n                amount\\n                mixedCurrencyDisclaimer\\n                type\\n                tooltip\\n                subItems {\\n                    title\\n                    amount\\n                    type\\n                    tooltip\\n                }\\n            }\\n        }\\n    }\\n\",\"variables\":{\"createTravelerCheckoutRequest\":{\"unit\":\"/units/0001/06a12c46-a89b-4620-86f2-7007e2955d90\",\"arrivalDate\":\"2020-03-13\",\"departureDate\":\"2020-03-18\",\"children\":0,\"adults\":2,\"pets\":0,\"listingRef\":\"611.10570866.5597723\",\"currency\":\"USD\"}},\"operation\":\"graphql_get_pricing_quote\"}"
headers = {
    'origin': "https://www.homeaway.co.uk",
    'x-homeaway-site': "homeaway_uk",
    'user-agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36",
    'x-csrf-jwt-pdp': "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbiI6IjU5N2QyZGJmYjg2MmFlZjM2Y2IzMTMxMGNkZDZlMTlkZTE0MTYwOWViYTEzYWQ1MWYzMjU2NTU5MzVlYWE4ZjRjMTZhYmM2YjY1YmVlOWQ3NzM2MDE2Njg0YTc3OGE2OTg1Nzg4M2IzYWI0YTUzZmU0N2IyNWU1YjczN2E5MzRkMTMxOWE4MjJjYTlhMzg2MTM2ZGJlODQ4N2Y2YjM3NTU2ODcxYjIwMWM3ZDYxYmNjYWFhMzM4NjYwNWMwMmU1NDJjNmQxN2NhN2FhN2VjYjNjMTI4OTcxNzI3OTEyZjg2YmQ1YzQzNTRjZTYxYTc2YTE5NzMwNzMyNGQ4NzRhYjNhODRkOWI1NDc4ZmU1ODI1NzU4YTU0MjM5ZTZmMjQzYyIsImlhdCI6MTU4MzE4MTM0MywiZXhwIjoxNTgzNzg2MTQzfQ.owkOAY8AtuQM6ghYro4OdiVSEy7uTT-UXa0vXbIoOcM",
    'sec-fetch-dest': "empty",
    'x-homeaway-displaylocale': "en_GB",
    'accept': "*/*",
    'content-type': "application/json",
    'cache-control': "no-cache",
    'postman-token': "a0782281-d7ef-96db-8c54-08f250e8ac86"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)

Элемент полезной нагрузки для запроса -

{"query":"query priceDetails($createTravelerCheckoutRequest: CreateTravelerCheckoutRequest) {priceDetails(createTravelerCheckoutRequest: $createTravelerCheckoutRequest) {notes {description}totals{title amount tooltip subItems {title}}checkoutUrl instantBooking dueNow {title amount tooltips {title amount tooltip}} payments {title amount paidText infoText status               viewUrl}averageNightlies {perNightCost {currency amount localized } type}edapEventJson  edapQuoteSuccess edapPriceQuotePresented  lineItems {     title amount mixedCurrencyDisclaimer type tooltip subItems { title amount type tooltip }}}}",
"variables":{"createTravelerCheckoutRequest":
               {"unit":"/units/0001/de2ef943-c782-4179-a157-060ed12273c4","arrivalDate":"2020-03-13","departureDate":"2020-03-18","children":0,"adults":2,"pets":0,"listingRef":"611.10579173.5606075","currency":"EUR"}},
"operation":"graphql_get_pricing_quote"}

Заголовки для запроса -

Origin:https://www.homeaway.co.uk
x-homeaway-site:homeaway_uk
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36
x-csrf-jwt-pdp:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbiI6IjU5N2QyZGJmYjg2MmFlZjM2Y2IzMTMxMGNkZDZlMTlkZTE0MTYwOWViYTEzYWQ1MWYzMjU2NTU5MzVlYWE4ZjRjMTZhYmM2YjY1YmVlOWQ3NzM2MDE2Njg0YTc3OGE2OTg1Nzg4M2IzYWI0YTUzZmU0N2IyNWU1YjczN2E5MzRkMTMxOWE4MjJjYTlhMzg2MTM2ZGJlODQ4N2Y2YjM3NTU2ODcxYjIwMWM3ZDYxYmNjYWFhMzM4NjYwNWMwMmU1NDJjNmQxN2NhN2FhN2VjYjNjMTI4OTcxNzI3OTEyZjg2YmQ1YzQzNTRjZTYxYTc2YTE5NzMwNzMyNGQ4NzRhYjNhODRkOWI1NDc4ZmU1ODI1NzU4YTU0MjM5ZTZmMjQzYyIsImlhdCI6MTU4MzE4MTM0MywiZXhwIjoxNTgzNzg2MTQzfQ.owkOAY8AtuQM6ghYro4OdiVSEy7uTT-UXa0vXbIoOcM
Sec-Fetch-Dest:empty
X-HomeAway-DisplayLocale:en_GB
Accept:*/*
Content-Type:application/json

Тип запроса - POST

URL запроса - <"<a href="https://www.homeaway.co.uk/pdp/graphql" rel="nofollow noreferrer">https://www.homeaway.co.uk/pdp/graphql">

Ответ от ПОСТМАН -

    "data": {
        "priceDetails": {
            "notes": [],
            "totals": [
                {
                    "title": "Total",
                    "amount": "US$1,222.85",
                    "tooltip": null,
                    "subItems": null
                }
            ],
            "checkoutUrl": "/td/tc/a/checkout/611.10570866.5597723?unitLink=/units/0001/06a12c46-a89b-4620-86f2-7007e2955d90&arrivalDate=03/13/2020&departureDate=03/18/2020&petIncluded=false&adultsCount=2&childrenCount=0&skipLogin=true",
            "instantBooking": true,
            "dueNow": [
                {
                    "title": "Your payment is",
                    "amount": "US$1,222.85",
                    "tooltips": null
                }
            ],
            "payments": null,
            "averageNightlies": [
                {
                    "perNightCost": {
                        "currency": "USD",
                        "amount": 244.57,
                        "localized": "US$245"
                    },
                    "type": "TOTAL_TRIP"
                },
                {
                    "perNightCost": {
                        "currency": "USD",
                        "amount": 244.57,
                        "localized": "US$245"
                    },
                    "type": "BASE_RENT"
                },
                {
                    "perNightCost": {
                        "currency": "USD",
                        "amount": 244.57,
                        "localized": "US$245"
                    },
                    "type": "TOTAL_RENT"
                }
            ],
            "edapEventJson": "{\"eventstartdate\":\"2020-03-13\",\"eventenddate\":\"2020-03-18\",\"eventnumadults\":\"2\",\"eventnumchildren\":\"0\",\"eventcurrency\":\"USD\",\"unituuid\":\"06a12c46-a89b-4620-86f2-7007e2955d90\",\"eventpets\":\"false\",\"stramountrent\":\"US$1,222.85\",\"stramounttotal\":\"US$1,222.85\",\"stramountsubtotal\":\"US$1,222.85\"}",
            "edapQuoteSuccess": "{\"displayquotetotal\":\"1222.85\",\"eventquoteamount\":\"1222.85\",\"fullorderrentalrate\":\"1222.85\",\"ordertax\":\"0\",\"rdd\":\"0\",\"pdp\":\"0\",\"servicefeeamount\":\"0\",\"numpartnerfees\":\"0\",\"partnerfeesamount\":\"0\",\"eventstartdate\":\"2020-03-13\",\"eventenddate\":\"2020-03-18\",\"eventnumadults\":\"2\",\"eventnumchildren\":\"0\",\"eventquotecurrency\":\"USD\"}",
            "edapPriceQuotePresented": "{\"adult_count\":\"2\",\"child_count\":\"0\",\"display_quote_total\":\"1222.85\",\"display_quote_total_currency\":\"USD\",\"partner_fee_count\":null,\"partner_fee_total\":null,\"partner_fee_total_currency\":null,\"quote_tax\":null,\"quote_tax_currency\":null,\"refundable_damage_deposit\":null,\"refundable_damage_deposit_currency\":null,\"service_fee\":null,\"service_fee_currency\":null,\"stay_end_date\":\"2020-03-18\",\"stay_start_date\":\"2020-03-13\",\"with_pets\":\"false\",\"listing_id\":\"611.10570866.5597723\"}",
            "lineItems": [
                {
                    "title": "5 nights",
                    "amount": "US$1,222.85",
                    "mixedCurrencyDisclaimer": null,
                    "type": "RENT",
                    "tooltip": null,
                    "subItems": null
                }
            ]
        }
    }
}

и ответ от Python Модуль запросов -

{"statusCode":403,"error":"Forbidden","message":"Forbidden"}

Может кто-нибудь, пожалуйста, помогите мне объяснить, почему это происходит ?? Как решить эту проблему.

Ссылка для проверки страницы - Ссылка домашней страницы . Пожалуйста, обратитесь к graphql запросам.

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