【问题标题】:Receiving 'BadRequestKeyError' when attempting to GET data from endpoint url尝试从端点 url 获取数据时收到“BadRequestKeyError”
【发布时间】:2019-07-02 20:08:34
【问题描述】:

我尝试使用 Python 实现 API,并使用烧瓶来帮助自己学习和练习 REST。

这个想法是接收带有如下数据的 HTTP POST: {"startDate":"2015-07-01","endDate":2015-07-08","within":{"value":9000,"units":miles}} 并将一些数据发送到NASA API(端点)。

我能够创建一个 POST 方法,并且能够接收数据(在 POSTMAN 和浏览器中)。以下是相关代码:

@neows.route('/UserInput',methods=['GET','POST'])
def UserInput():
    startDate = request.args.get('startDate')
    endDate = request.args.get('endDate')
    #print (type(startDate))
    #print (type(endDate))
    getAsteroids(startDate,endDate)
    return jsonify(request.args)

但是当我从上面的 POST 中提取一些数据以发送到 NASA API (GET) 时,我收到了这个错误:

werkzeug.exceptions.BadRequestKeyError

这是我要访问的网址:(https://api.nasa.gov/neo/rest/v1/feed?start_date=START_DATE&end_date=END_DATE&api_key=API_KEY)

我可以在 POSTMAN 和浏览器上点击我的代码之外的网址。

带有错误的相关代码段发布在下面,似乎引发错误的行以斜体显示(标有 *)。

def getAsteroids(startDate,endDate):
    API_KEY='xxx'
    print (startDate)
    print (endDate)
    *result=request.args["https://api.nasa.gov/neo/rest/v1/feed? 
    start_date="+startDate+"&end_date="+endDate+"&api_key="+API_KEY+""]*

如果有人能帮助我理解和解决这个问题,我将不胜感激。

【问题讨论】:

    标签: python rest flask


    【解决方案1】:

    如果您想针对 NASA 的 API 发出请求,您可以使用 requests 模块。 (或任何其他发送 HTTP 请求的模块)

    import requests
    
    # ...
    
    def getAsteroids(startDate, endDate):
        API_KEY='xxx'
        payload = {'start_date': startDate, 'end_date': endDate, 'api_key': API_KEY}
        result = requests.get('https://api.nasa.gov/neo/rest/v1/feed', params=payload)
    

    request.argssomething different,用于获取传入请求的参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-08
      相关资源
      最近更新 更多