2016-02-12 43 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