【问题标题】:500 Internal Server Error: Python Bottle API500 内部服务器错误:Python Bottle API
【发布时间】:2014-11-19 09:47:50
【问题描述】:

我正在使用 Python 开发一个简单的 API - Bottle。

这就是我使用路由启用 API HTTP 请求的方式:

@route('/expand')
def expand(url = ""):
    url = request.query.get('url', '')
    if url == "":
        return {"success" : False,
            "start_url" : url,
            "final_url" : "",
            "url_list" : []
            }
    url_list = expandURL(url)
    return {"success" : True,
            "start_url" : url,
            "final_url" : url_list[-1],
            "url_list" : url_list
            }

这是我得到的错误:

2014-09-24 18:50:24,930 :Traceback (most recent call last):
2014-09-24 18:50:24,933 :  File "/usr/local/lib/python2.7/dist-packages/bottle.py", line 764, in _handle
2014-09-24 18:50:24,933 :    return route.call(**args)
2014-09-24 18:50:24,933 :  File "/usr/local/lib/python2.7/dist-packages/bottle.py", line 1575, in wrapper
2014-09-24 18:50:24,933 :    rv = callback(*a, **ka)
2014-09-24 18:50:24,933 :  File "/home/sahildua2305/mysite/bottle_app.py", line 41, in expand
2014-09-24 18:50:24,933 :    url_list = expandURL(url)
2014-09-24 18:50:24,933 :  File "/home/sahildua2305/mysite/bottle_app.py", line 9, in expandURL
2014-09-24 18:50:24,933 :    return unshorten_me(url, urls)
2014-09-24 18:50:24,933 :  File "/home/sahildua2305/mysite/bottle_app.py", line 14, in unshorten_me
2014-09-24 18:50:24,933 :    h.request('HEAD', parsed.path)
2014-09-24 18:50:24,933 :  File "/usr/lib/python2.7/httplib.py", line 973, in request
2014-09-24 18:50:24,933 :    self._send_request(method, url, body, headers)
2014-09-24 18:50:24,934 :  File "/usr/lib/python2.7/httplib.py", line 1007, in _send_request
2014-09-24 18:50:24,934 :    self.endheaders(body)
2014-09-24 18:50:24,934 :  File "/usr/lib/python2.7/httplib.py", line 969, in endheaders
2014-09-24 18:50:24,934 :    self._send_output(message_body)
2014-09-24 18:50:24,934 :  File "/usr/lib/python2.7/httplib.py", line 829, in _send_output
2014-09-24 18:50:24,934 :    self.send(msg)
2014-09-24 18:50:24,934 :  File "/usr/lib/python2.7/httplib.py", line 791, in send
2014-09-24 18:50:24,934 :    self.connect()
2014-09-24 18:50:24,934 :  File "/usr/lib/python2.7/httplib.py", line 772, in connect
2014-09-24 18:50:24,934 :    self.timeout, self.source_address)
2014-09-24 18:50:24,934 :  File "/usr/lib/python2.7/socket.py", line 571, in create_connection
2014-09-24 18:50:24,934 :    raise err
2014-09-24 18:50:24,934 :error: [Errno 111] Connection refused

这就是我通过将params={'url':'http://tuq.in/sahil'} 发送到链接 [https://sahildua2305.pythonanywhere.com/expand] 来测试调用的方式,它给出了 500 内部错误。不带任何参数发送相同的请求不会出错!

请帮助我纠正错误.. 提前致谢。

【问题讨论】:

    标签: python api url url-routing bottle


    【解决方案1】:

    您可能有一个免费帐户,但他们不允许互联网访问除白名单网站之外的任何内容。

    您只在提供参数时收到错误的原因是发出请求的代码(在 expandURL 中)仅在有参数时才被调用。

    【讨论】:

    • 他们甚至不提供对自己托管应用程序的互联网访问?喜欢 - sahildua2305.pythonanywhere.com?
    • 您在代码中尝试访问的 URL 是 tuq.in/sahil,未列入白名单。
    • 这意味着我永远无法在 PythonAnywhere 上托管我的 API?这很糟糕!
    • 这意味着您不能在免费的 PythonAnywhere 帐户上托管您的 API。
    猜你喜欢
    • 2011-10-09
    • 2015-11-22
    • 2018-11-14
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 2016-08-07
    • 1970-01-01
    相关资源
    最近更新 更多