使用代理后面的PHP工具包访问salesforce API

时间:2011-09-20 08:40:14

标签: php proxy salesforce

当我尝试访问代理服务器后面的salesforce API时,我无法这样做。当没有代理时,一切正常。

有没有办法在PHP代码中使用代理ID,用户名和密码设置代理详细信息,以允许我们的应用程序和salesforce API之间的通信。我在Java上发现了一些关于如何执行此操作的帖子,但没有在PHP中发布..

1 个答案:

答案 0 :(得分:2)

这取决于您使用的是SOAP还是REST API,但PHP SoapClientcURL库都支持代理。

对于SoapClient,文档说明:

  

对于HTTP身份验证,可以使用登录名和密码选项   供应凭证。用于通过代理建立HTTP连接   服务器,选项proxy_host,proxy_port,proxy_login和   proxy_password也可用。对于HTTPS客户端证书   身份验证使用local_cert和passphrase选项。一个   可以在身份验证选项中提供身份验证。该   身份验证方法可以是SOAP_AUTHENTICATION_BASIC   (默认)或SOAP_AUTHENTICATION_DIGEST。

例如,这是某些sample code connecting to Salesforce using SOAP的简化摘录:

$soapOptions = array();
$soapOptions['proxy_host']     = "localhost";
$soapOptions['proxy_port']     = (int) 8080; // Use an integer, not a string
$soapOptions['proxy_login']    = "username";
$soapOptions['proxy_password'] = "password";

$this->sforce = new SoapClient($wsdlPath, $soapOptions);

对于cURL,请查看curl_setopt文档,其中包含多个代理选项。以下是一些sample code connecting to Salesforce using REST的简化摘录:

$ch = curl_init();
...
curl_setopt($ch, CURLOPT_PROXY, "localhost");
curl_setopt($ch, CURLOPT_PROXYPORT, 8080);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, "username:password");

$chResponse = curl_exec($ch);