如何使用 Python 连接到 localhost python flask API

我有本地基于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.client

import json


headers = {'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/'

我似乎一直在使用正确的网址。我无法理解错误。任何人都可以帮忙。谢谢


精慕HU
浏览 291回答 1
1回答

隔江千里

从文档(强调是我的):HTTPConnection 实例表示具有 HTTP 服务器的一个事务。应为其实例化,向其传递主机和可选端口号。如果未传递端口号,则从主机字符串中提取该端口(如果它的格式为 host:port,否则将使用默认的 HTTP 端口 (80)。您的字符串不遵循 格式 。删除尾部斜杠,或使用关键字参数指定端口:host:portconn = 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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python