2014-04-10 192 views
0

我知道有很多类似的问题 - 这样的解决方案,但没有解决方案为我工作。访问网络服务

我想访问Web服务,但得到HTTP错误:401未经授权。

这里是我的代码:

from suds.transport.http import HttpAuthenticated 
from suds.client import Client 
import base64 
url = 'http://server.something.com/path/to/Service.svc' 

transport = HttpAuthenticated() 
client = Client(url,username='******', password='********') 

并得到如下错误:

Traceback (most recent call last): 
File "./getDetails.py", line 127, in <module> 
test() 
File "./getDetails.py", line 121, in test 
client = Client(url,username='****', password='******') 
File "/usr/local/lib/python2.7/dist-packages/suds-0.3.7-    py2.7.egg/suds/client.py", line 109, in __init__ 
self.wsdl = Definitions(url, options) 
File "/usr/local/lib/python2.7/dist-packages/suds-0.3.7- py2.7.egg/suds/wsdl.py", line 172, in __init__ 
root = p.parse(url=url).root() 
File "/usr/local/lib/python2.7/dist-packages/suds-0.3.7-py2.7.egg/suds/sax/parser.py", line 133, in parse 
fp = self.transport.open(Request(url)) 
File "/usr/local/lib/python2.7/dist-packages/suds-0.3.7-py2.7.egg/suds/transport/https.py", line 69, in open 
return HttpTransport.open(self, request) 
File "/usr/local/lib/python2.7/dist-packages/suds-0.3.7-py2.7.egg/suds/transport/http.py", line 72, in open 
raise TransportError(str(e), e.code, e.fp) 
suds.transport.TransportError: HTTP Error 401: Unauthorized 

任何帮助将不胜感激。提前致谢。

+0

你好!我认为你需要设置你的用户名和密码作为标题。您的服务是否暴露任何验证方法?或有任何认证对象? – israelord

+0

对不起,我没有得到你。 – mrutyunjay

回答

0

不知道这个解决您的问题,但我建议你使用这个库Requests

import requests 
response = requests.get('https://api.github.com/user', auth=('user', 'pass')) 

根据你的代码,你指向一个根服务而不是一个方法。

+0

如何在此之后调用方法?在我的代码中,我首先尝试初始化客户端。并使用我可以调用方法。 – mrutyunjay

+0

对不起,我想念你的代码,想念你的服务是肥皂基吧? – BlaShadow

+0

是的。那就对了。 – mrutyunjay