我正在尝试使用 salesforce-python-toolkit 对 Salesforce API 进行 Web 服务调用,但是我无法让客户端通过代理。由于该工具包是基于 suds 的,我尝试使用 suds 本身来查看是否可以让它尊重那里的代理设置,但它也不起作用。
这在 OS X 10.7(python 2.7)和 ubuntu 12.04 上的 suds 0.3.9 上进行了测试。
我提出的一个示例请求最终没有通过代理(只是在本地运行的 burp 或 charles 代理):
import suds
ws = suds.client.Client('file://sandbox.xml',proxy={'http':'http://localhost:8888'})
ws.service.login('user','pass')
我用代理尝试了各种方法——删除 http://,使用 IP,使用 FQDN。我已经逐步浏览了 pdb 中的代码,并看到它设置了代理选项。我也尝试过在没有代理的情况下实例化客户端,然后将其设置为: ws.set_options(proxy={'http':'http://localhost:8888'})
suds 不再使用代理了吗?我没有看到它直接列在这里http://jortel.fedorapeople.org/suds/doc/suds.options.Options-class.html,但我确实在传输中看到它。我需要通过传输进行不同的设置吗?当我进入 pdb 时,它看起来确实像是在使用传输,但我不确定如何。
谢谢!