我有本地基于python flask的api运行。它在下面的基本网址上运行:http://localhost:80/ * Serving Flask app "main" (lazy loading) * Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. * Debug mode: off * Running on http://localhost:80/ (Press CTRL+C to quit)这是它的代码:if __name__ == '__main__': import os HOST = os.environ.get('SERVER_HOST', 'localhost') try: PORT = int(os.environ.get('SERVER_PORT', '5555')) except ValueError: PORT = 5555 app.run(HOST, 80)我需要连接到完整 URL 为以下网址的 API:http://localhost:80/api/v1/face/recognize我可以使用邮递员连接到它并获得良好的响应。我必须使用另一个python项目连接到它。为此,我使用以下代码:import http.clientimport jsonheaders = {'appName': 'Tirunka', 'app_key': '6e0e36ff19de5623', 'Content-Type': 'application/json'}data = { "imageUrl": "kf7ZrqtJ5Sucu02eL7kerZrOG7Or ........ and so on ..........Haypep1uir/AKRH9K662T92K5TRh/", "galleryName": 'test'}json_data = json.dumps(data)conn = http.client.HTTPSConnection('http://localhost:80')conn.request("POST", "/api/v1/face/recognize", json_data, headers)在这一行,我得到以下异常:conn = http.client.HTTPSConnection('http://localhost:80/')nonnumeric port: '80/'我似乎一直在使用正确的网址。我无法理解错误。任何人都可以帮忙。谢谢
1 回答
隔江千里
TA贡献1906条经验 获得超10个赞
从文档(强调是我的):
HTTPConnection 实例表示具有 HTTP 服务器的一个事务。应为其实例化,向其传递主机和可选端口号。如果未传递端口号,则从主机字符串中提取该端口(如果它的格式为 host:port,否则将使用默认的 HTTP 端口 (80)。
您的字符串不遵循 格式 。删除尾部斜杠,或使用关键字参数指定端口:host:port
conn = http.client.HTTPSConnection('http://localhost:80/') # does not work (InvalidURL: nonnumeric port: '80/')conn = http.client.HTTPSConnection('http://localhost:80') # works
conn = http.client.HTTPSConnection('http://localhost',port=80) # works添加回答
举报
0/150
提交
取消
