我是现在开始通过python访问API,这是我编写的代码下面的服务,但失败并出现错误。如果我通过Internet Explorer(https://myinstance.service-now.com/api/now/table/incident)进行访问,则使用相同的API URL,将会得到一些结果。但是通过Python代码会抛出错误。
有人可以查看我的代码并在遇到任何问题时为我提供帮助,还是可以与我分享通过python代码读取API的解决方案。
import pysnow
# Configure authentication settings. Instance can be 'michmed', 'ummedtest', or 'ummeddev'
auth = {'instance': 'myinstance', 'username': 'username', 'password': 'XXXXXXX'}
# Connect to the ServiceNow instance
s = pysnow.Client(instance=auth['instance'], user=auth['username'], password=auth['password'])
# Fetch incident INC0012555, then print it.
r = s.query(table='incident', query={'number': 'INC0646025'})
print(r.get_one(fields=[]))
错误:
“ C:\ Program Files \ Python37 \ python.exe” connectto_servicenow.py
回溯(最近通话最近一次):
文件_new_conn中的“ C:\ Program Files \ Python37 \ lib \ site-packages \ urllib3 \ connection.py”行159
((self._dns_host,self.port),self.timeout,** extra_kw)
create_connection中的文件“ C:\ Program Files \ Python37 \ lib \ site-packages \ urllib3 \ util \ connection.py”,第57行
对于socket.getaddrinfo(主机,端口,家庭,socket.SOCK_STREAM)中的资源:
getaddrinfo中的文件“ C:\ Program Files \ Python37 \ lib \ socket.py”,第748行
_socket.getaddrinfo中的res(主机,端口,家庭,类型,原型,标志): socket.gaierror:[Errno 11001] getaddrinfo失败
答案 0 :(得分:0)
我能够找到问题。
1)在“立即服务”实例设置中,服务器IP(托管代码)应列入白名单,以通过代码/程序访问API。
2)用于执行Python代码的服务帐户或ID应该可以访问互联网(可以在防火墙后面,将其修复)
解决了以上两点后,我现在可以通过Python访问该服务。