IronPython не работает при вызове urlopen
Я пытаюсь использовать IronPython 2.7.4, чтобы сделать базовый HTTP-запрос с данными и заголовком, используя urllib2
модуль. По нескольким причинам я не могу использовать IronPython 2.7.5, и поэтому не могу установить прекрасный requests
модуль - насколько я обнаружил, он не совместим с более ранними версиями - поэтому я застрял с urllib2
,
Мой код не работает на response = urllib2.urlopen(request)
линия:
import json
import urllib2
import logging
#Create log for long-ass error
LOG_FILENAME = 'error.txt'
logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG)
try:
#Main Function
data = json.dumps({"userID": "user@companycom", "password": "abcd1234"})
header = {"Content-Type": "application/json"}
request = urllib2.Request("https://company.autodeskplm360.net/rest/auth/1/login")
request.add_header("Content-Type", "application/json")
request.add_data(data)
response = urllib2.urlopen(request)
print(response)
#Print long-ass error to file
except:
logging.exception("THIS IS MY ERROR")
raise
Я получаю следующую длинную ошибку... какие-либо предложения??
ERROR:root:THIS IS MY ERROR
Traceback (most recent call last):
File "API_Template_IPY_simple.py", line 15, in <module>
response = urllib2.urlopen(request)
File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 394, in open
response = self._open(req, data)
File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 411, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 372, in _call_chain
result = func(*args)
File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 1207, in https_open
return self.do_open(httplib.HTTPSConnection, req)
File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 1174, in do_open
raise URLError(err)
URLError: <urlopen error [Errno errors while performing handshake: ] System.Security.Authentication.AuthenticationException: A call to SSPI failed, see inner exception. ---> System.ComponentModel.Win32Exception: The supplied message is incomplete. The signature was not verified
--- End of inner exception stack trace ---
at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation)
at IronPython.Modules.PythonSocket.ssl.do_handshake()>
Изменить: Решил проблему!
Нашел другую библиотеку типов запросов, спрятанную в документации IronPython, в которой используется класс.NET WebRequest
Немного изменен пример функции, показанной для учета JSON и blammo. 200 OK
ответ сгенерирован.
1 ответ
Найдена другая библиотека типа запросов, скрытая в документации IronPython , которая использует класс .NET.WebRequest
Немного изменен пример функции, показанный для учета JSON и blammo.200 OK
сгенерированный ответ.
Этот ответ был опубликован как редактирование вопроса о том , что IronPython не работает при вызове urlopen OP user6616093 в соответствии с CC BY-SA 3.0.