5
Tôi đang sử dụng mô-đun búp bê python và muốn truy xuất các tiêu đề phản hồi (cụ thể là Sửa đổi lần cuối) từ một phản hồi suds.Cách lấy tiêu đề phản hồi từ yêu cầu nháp
Tôi đang sử dụng mô-đun búp bê python và muốn truy xuất các tiêu đề phản hồi (cụ thể là Sửa đổi lần cuối) từ một phản hồi suds.Cách lấy tiêu đề phản hồi từ yêu cầu nháp
Với nỗ lực nhiều hơn cần phải là câu trả lời.
Tôi có phiên bản suds 0.3.9 tại đây. Tôi đã phải phân lớp lớp vận tải đang được sử dụng và bọc phương thức send
để lưu trữ các tiêu đề đã nhận cuối cùng trong lớp vận tải.
import logging
logging.basicConfig(level=logging.INFO)
#logging.getLogger('suds.client').setLevel(logging.DEBUG)
#logging.getLogger('suds.transport').setLevel(logging.DEBUG)
#logging.getLogger('suds.xsd.schema').setLevel(logging.DEBUG)
#logging.getLogger('suds.wsdl').setLevel(logging.DEBUG)
from suds.client import Client
from suds.xsd.doctor import ImportDoctor, Import
from suds.transport.https import HttpAuthenticated
class MyTransport(HttpAuthenticated):
def __init__(self,*args,**kwargs):
HttpAuthenticated.__init__(self, *args, **kwargs)
self.last_headers = None
def send(self,request):
result = HttpAuthenticated.send(self, request)
self.last_headers = result.headers
return result
doctor = ImportDoctor(Import('http://schemas.xmlsoap.org/soap/encoding/'))
svc_url = 'https://server/Service?wsdl'
svc_user = 'username'
svc_pass = 'password'
client = Client(svc_url,doctor=doctor,transport=MyTransport())
# For some reason I can't be bothered to investigate, setting the username and password in
# client kwargs doesn't pass them to the custom transport:
client.set_options(location=svc_url.partition('?')[0],username=svc_user,password=svc_pass)
# call a method
client.service.SomeMethod()
# look at headers
client.options.transport.last_headers
Điều này có vẻ tốt, cảm ơn rất nhiều! Tôi vui vì nó không rõ ràng. – PriceChild