使用向microsoft azure服务发出连接请求http.client.https.用于分析图像的连接

2024-03-28 17:11:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用azure服务计算机视觉来分析python3.7的图像。尝试发出连接请求时,显示一个错误。 看起来我为httpsConnection提供的参数(url)是错误的,但是我不知道如何纠正它。你知道吗

问题出在API端点上。我给出的端点是正确的,但是参数要求整数值(这就是我所理解的)。你知道吗

def analyze_image(data):
    try:
        conn = http.client.HTTPSConnection('https://xxx.cognitiveservices.azure.com/')
        conn.request("POST", "/vision/v1.0/analyze?%s" % params, str(data), headers)
        response = conn.getresponse()
        data = response.read()
        print(str(data))
        conn.close()
    except Exception as e:
        print("[Errno {0}] {1}".format(e.errno, e.strerror))

    return data

错误:

Traceback (most recent call last):
  File "C:\Users\Rupali Singh\AppData\Local\Programs\Python\Python37\lib\http\client.py", line 887, in _get_hostport
    port = int(host[i+1:])
ValueError: invalid literal for int() with base 10: '//rupali.cognitiveservices.azure.com/'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/Rupali Singh/PycharmProjects/Drishti/ms_visionapi.py", line 44, in analyze_image
    conn = http.client.HTTPSConnection('https://rupali.cognitiveservices.azure.com/')
  File "C:\Users\Rupali Singh\AppData\Local\Programs\Python\Python37\lib\http\client.py", line 1373, in __init__
    blocksize=blocksize)
  File "C:\Users\Rupali Singh\AppData\Local\Programs\Python\Python37\lib\http\client.py", line 851, in __init__
    (self.host, self.port) = self._get_hostport(host, port)
  File "C:\Users\Rupali Singh\AppData\Local\Programs\Python\Python37\lib\http\client.py", line 892, in _get_hostport
    raise InvalidURL("nonnumeric port: '%s'" % host[i+1:])
http.client.InvalidURL: nonnumeric port: '//rupali.cognitiveservices.azure.com/'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/Rupali Singh/PycharmProjects/Drishti/ms_visionapi.py", line 85, in <module>
    data = analyze_image(img)
  File "C:/Users/Rupali Singh/PycharmProjects/Drishti/ms_visionapi.py", line 51, in analyze_image
    print("[Errno {0}] {1}".format(e.errno, e.strerror))
AttributeError: 'InvalidURL' object has no attribute 'errno'

Process finished with exit code 1

Tags: inpyimageclienthttpdataportline
1条回答
网友
1楼 · 发布于 2024-03-28 17:11:40

您应该使用不带https://部分的主机名。你知道吗

conn = http.client.HTTPSConnection('xxx.cognitiveservices.azure.com')

但是http模块非常笨拙,有时会给您提供毫无帮助的错误消息。相反,我建议使用官方的python客户端for microsoftazure认知服务Computer Vision客户端库for python。你知道吗

https://pypi.org/project/azure-cognitiveservices-vision-computervision/

如果不想使用该库,或者不想连接到其他HTTPAPI,请使用requests。你知道吗

相关问题 更多 >