Azure Form Recognizer API连接失败:Errno 11001 getaddrinfo failed解决方案咨询
Azure Form Recognizer API:
getaddrinfo failed 连接异常修复建议 在两台搭载Python 3.11的Windows环境中运行相同的Azure Form Recognizer OCR代码,一台正常,另一台抛出错误:
ServiceRequestError: <urllib3.connection.HTTPSConnection object at 0x000001C40253F590>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed代码如下:
from azure.core.credentials import AzureKeyCredential from azure.ai.formrecognizer import DocumentAnalysisClient document_analysis_client = DocumentAnalysisClient(endpoint = ENDPOINT, credential = AzureKeyCredential(KEY_CREDENTIAL)) poller = document_analysis_client.begin_analyze_document_from_url( model_id="prebuilt-read", document_url=my_document_url)推测问题与Windows环境变量或代理设置相关,但未找到解决办法,求修复建议。
修复建议
基础网络连通性验证
- 打开命令提示符,执行
nslookup <你的Azure Form Recognizer endpoint域名>(例如nslookup xxx.cognitiveservices.azure.com),确认域名能正常解析到IP地址。若解析失败,说明DNS配置异常,可尝试切换公共DNS(如8.8.8.8)。 - 用PowerShell执行
Test-NetConnection <endpoint域名> -Port 443,检查443端口是否可连通。若不通,排查系统防火墙、企业安全组是否拦截出站HTTPS请求。
- 打开命令提示符,执行
代理配置对齐
- 检查系统代理:打开「设置」→「网络和Internet」→「代理」,确保异常环境与正常环境的代理设置一致。若异常环境使用代理,需确认代理允许访问Azure认知服务域名。
- 若需要在代码中显式指定代理,可添加如下配置:
from azure.core.credentials import AzureKeyCredential from azure.ai.formrecognizer import DocumentAnalysisClient from azure.core.pipeline.transport import RequestsTransport transport = RequestsTransport(proxies={"https": "http://your-proxy-address:port"}) document_analysis_client = DocumentAnalysisClient( endpoint=ENDPOINT, credential=AzureKeyCredential(KEY_CREDENTIAL), transport=transport ) - 对比两台机器的
HTTP_PROXY、HTTPS_PROXY、NO_PROXY环境变量,确保配置一致,必要时删除异常环境中多余的代理变量。
清除本地DNS缓存
在命令提示符执行ipconfig /flushdns,清除本地DNS缓存后重新运行代码。依赖包版本对齐
执行pip list对比两台机器的azure-ai-formrecognizer、azure-core、urllib3等依赖包版本,将异常环境的版本同步到正常环境的版本:pip install azure-ai-formrecognizer==<正常环境版本号> pip install azure-core==<正常环境版本号>安全软件排查
临时关闭异常环境的系统防火墙和第三方安全软件,测试代码是否正常运行。若恢复正常,需将Python进程或Azure认知服务域名添加到安全软件的允许列表。
内容的提问来源于stack exchange,提问作者xSpekkio
相关产品推荐
相关产品推荐

