我有本地基于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
提交
取消