首页 > 解决方案 > 获取此 POST 方法 json API 结果的正确方法是什么?

问题描述

我是编码初学者,我试图找到一个可行的解决方案来获得这个 JSON API 的结果

curl --location --request POST 'https://proxy.airgateway.net/v1.1/AirShopping' \
--header 'Content-Type: application/json' \
--header 'AG-Providers: BA' \
--header 'Authorization: {{AG-Authorization}}' \
--data-raw '{
  "metadata": {
    "country": "DE",
    "currency": "EUR",
    "locale": "de_DE"
  },
  "originDestinations": [
    {
      "departure": {
        "airportCode": "LHR",
        "date": "{{flight_date}}"
      },
      "arrival": {
        "airportCode": "MAD"
      }
    }
  ],
  "preferences": {
    "cabin": ["2"],
    "nonStop": false
  },
  "travelers": {
    "ADT": 2,
    "CHD": 0,
    "INF": 0
  }
}'

这是我正在尝试将 JSON 数据包含在我的 request.json 文件中的 python 代码,但我迷失了 API 的听众

import requests
import json

AirShopping = 'https://proxy.airgateway.net/v1.1/AirShopping'

file = open('C:\\request.json','r')
json_input = file.read()
request_json = json.loads(json_input)


response = requests.post(AirShopping, request_json)
print(response.content)

谢谢,

标签: pythonjsonpost

解决方案


在下面查找有关在请求中使用标头的示例。注意:为方便起见,我跳过了文件加载部分。此示例失败并出现授权错误,这很好,因为我没有提供身份验证令牌。我想你可以根据这个来解决:

import requests
import json

AirShopping = 'https://proxy.airgateway.net/v1.1/AirShopping'

request_json = {
  "metadata": {
    "country": "DE",
    "currency": "EUR",
    "locale": "de_DE"
  },
  "originDestinations": [
    {
      "departure": {
        "airportCode": "LHR",
        "date": "{{flight_date}}"
      },
      "arrival": {
        "airportCode": "MAD"
      }
    }
  ],
  "preferences": {
    "cabin": ["2"],
    "nonStop": False
  },
  "travelers": {
    "ADT": 2,
    "CHD": 0,
    "INF": 0
  }
}

auth_token = "your-auth-token"

headers = {'content-type': 'application/json', 'AG-Providers': 'BA', 'Authorization': auth_token}


response = requests.post(AirShopping, data=request_json, headers=headers)
print(response.content)

推荐阅读