Python WebService客户端接口调用及身份验证问题

       最近由于业务需求,需要实现python Webservice的服务以及接口调用。服务端代码可自行百度,这里主要描述客户端以及我遇到的HTTP身份验证的问题,不多说直接上代码。

from suds.client import Client
from suds.transport.http import HttpAuthenticated
import base64
import urllib2

# 一:无需身份验证的简单调用
url = "http://localhost:8899/?wsdl"
client = Client(url)    # 可以print client进行相关信息查看
client.service.methodName(*args)    # 方法调用
req = str(client.last_sent())    # 保存请求报文,因为返回的是一个实例,所以要转换成str
response = str(client.last_received())    # 保存返回报文,返回的也是一个实例

# 二:需要身份验证的调用

# 1.
client = Client(url=wsdl_url, username=username, password=password)

# 2.
t = HttpAuthenticated(username=username, password=password)
client = Client(url=url, transport=t)

# 3.
t = HttpAuthenticated(username=username, password=password)
t.handler = urllib2.HTTPBasicAuthHandler(t.pm)    # 这种我的报错了,t.pm告知我没这个对象
t.urlopener = urllib2.build_opener(t.handler)
client = Client(url=wsdl_url, transport=t)

# 4.
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
authenticationHeader = {
    "SOAPAction" : "ActionName",
    "Authorization" : "Basic %s" % base64string
}
client = Client(url=wsdl_url, headers=authenticationHeader)

        这是我针对身份验证做的一些资料搜集、汇整。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值