python - 如何使用 Python 连接到 localhost python flask API
问题描述
我正在运行基于本地 python 烧瓶的 api。它在以下基本 url 上运行:
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/'
我似乎一直在使用正确的网址。我无法理解错误。任何人都可以请帮忙。谢谢
解决方案
从文档(重点是我的):
一个 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
推荐阅读
- javascript - 使用递归检查元素是否为数组
- ruby-on-rails - Symbol 与 100 的比较失败
- date - 如何找到前几周的日期?
- r - 删除R中表格中的重复日期
- kubernetes - 有没有办法检测 Helm Chart 部署的资源所做的更改
- android - 如何区分多个用户的指纹?
- amazon-web-services - AWS CodeArtifact:mvn deploy:deploy-file 无法部署工件:无法传输工件 401 Unauthorized
- c++ - cpp-httplib https 服务器无法在 Linux 上运行
- pyspark - 将列传递给函数,其中列可以为空
- excel - VBA 从工作表中导出/保存 PDF 仅选择非空白单元格