2016-02-12 34 views
0

我用肥皂水消耗一个WebService,我面临着一个奇怪的错误。Django的怪异行为与泡沫

当我第一次做的WebService的调用,它将失败。当我刷新页面时,它也失败了。当我第二次刷新页面时,它可以正常工作。

难道你们有什么想法,为什么它只能当我刷新页面两次?

urls.py:

url(r'^test/$', views.formulaire), 
url(r'^test/(?P<rechercher>.*\d+)/$', views.formulaire), #optional = .* 

views.py:

url = 'https://myWebService.com/Action.asmx?WSDL' 
username='username' 
password='password' 

client = Client(url=url, username=username, password=password) 

前两个时间我得到以下信息:

TransportError at /blog/test/ 
HTTP Error 401: Unauthorized 

Traceback: 

File "C:\Python34\lib\site-packages\suds_jurko-0.6-py3.4.egg\suds\transport\http.py" in open 
    67.    return self.u2open(u2request) 

File "C:\Python34\lib\site-packages\suds_jurko-0.6-py3.4.egg\suds\transport\http.py" in u2open 
    132.   return url.open(u2request, timeout=tm) 

File "C:\Python34\lib\urllib\request.py" in open 
    470.    response = meth(req, response) 

File "C:\Python34\lib\urllib\request.py" in http_response 
    580.     'http', request, response, code, msg, hdrs) 

File "C:\Python34\lib\urllib\request.py" in error 
    502.   result = self._call_chain(*args) 

File "C:\Python34\lib\urllib\request.py" in _call_chain 
    442.    result = func(*args) 

File "C:\Python34\lib\urllib\request.py" in http_error_401 
    901.           url, req, headers) 

File "C:\Python34\lib\urllib\request.py" in http_error_auth_reqed 
    879.       return self.retry_http_basic_auth(host, req, realm) 

File "C:\Python34\lib\urllib\request.py" in retry_http_basic_auth 
    889.    return self.parent.open(req, timeout=req.timeout) 

File "C:\Python34\lib\urllib\request.py" in open 
    470.    response = meth(req, response) 

File "C:\Python34\lib\urllib\request.py" in http_response 
    580.     'http', request, response, code, msg, hdrs) 

File "C:\Python34\lib\urllib\request.py" in error 
    508.    return self._call_chain(*args) 

File "C:\Python34\lib\urllib\request.py" in _call_chain 
    442.    result = func(*args) 

File "C:\Python34\lib\urllib\request.py" in http_error_default 
    588.   raise HTTPError(req.full_url, code, msg, hdrs, fp) 

During handling of the above exception (HTTP Error 401: Unauthorized), another exception occurred: 

File "C:\Python34\lib\site-packages\django-1.9.1-py3.4.egg\django\core\handlers\base.py" in get_response 
    149.      response = self.process_exception_by_middleware(e, request) 

File "C:\Python34\lib\site-packages\django-1.9.1-py3.4.egg\django\core\handlers\base.py" in get_response 
    147.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 

File "C:\wamp\www\crepes_bretonnes\blog\views.py" in formulaire 
    91.     client = Client(url=url, username=username, password=password) 

File "C:\Python34\lib\site-packages\suds_jurko-0.6-py3.4.egg\suds\client.py" in __init__ 
    115.   self.wsdl = reader.open(url) 

File "C:\Python34\lib\site-packages\suds_jurko-0.6-py3.4.egg\suds\reader.py" in open 
    150.    d = self.fn(url, self.options) 

File "C:\Python34\lib\site-packages\suds_jurko-0.6-py3.4.egg\suds\wsdl.py" in __init__ 
    136.   d = reader.open(url) 

File "C:\Python34\lib\site-packages\suds_jurko-0.6-py3.4.egg\suds\reader.py" in open 
    74.    d = self.download(url) 

File "C:\Python34\lib\site-packages\suds_jurko-0.6-py3.4.egg\suds\reader.py" in download 
    92.    fp = self.options.transport.open(Request(url)) 

File "C:\Python34\lib\site-packages\suds_jurko-0.6-py3.4.egg\suds\transport\https.py" in open 
    62.   return HttpTransport.open(self, request) 

File "C:\Python34\lib\site-packages\suds_jurko-0.6-py3.4.egg\suds\transport\http.py" in open 
    69.    raise TransportError(str(e), e.code, e.fp) 

Exception Type: TransportError at /blog/test/ 
Exception Value: HTTP Error 401: Unauthorized 

回答

2

我遇到了同样的问题由于未使用正确的transport类,因此在生产之前。在我的情况下,为了生产https,强制开发严格为http。

this question -

泡沫提供了两个HttpAuthenticated类,一个所述suds.transport.http模块中,第二个suds.transport.https模块中。它看起来是从suds.transport.http实例化的,但是由于你的URL是https://,你可能想尝试suds.transport.https.HttpAuthenticated。

+0

谢谢,它解决了我的问题 – Creed