soap :: lite并使用squid代理操作端口3128

时间:2013-11-29 19:53:14

标签: perl soap proxy

我确实有一个问题。

我现在正在使用SOAP :: Lite模块一段时间,这很棒

我正在使用下面的脚本来设置会话,这很好用。 (地址是假的)

#! perl -w
use SOAP::Lite;
use Net::SSL;

use warnings;
use strict;

$ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0;

my $s = SOAP::Lite -> service('https://some.address.com:443/session-api?wsdl') 
-> ns('http://schemas.xmlsoap.org/soap/envelope/', 'soapenv');

my $session = $s -> startSession(SOAP::Data -> name("arg0") -> value("user"), 
SOAP::Data -> name("arg1") -> value("pwd"));

print "$session\n";

但由于基础设施的变化,我现在必须在10.10.10.10:3128使用squid代理。无需身份验证即可使用代理。

我一直试图在soap调用中使用代理设置做很多选项,但是没有一个能通过代理完成调用,它总是试图直接进入服务器。

请你能帮我改变上面的脚本吗?正在使用squid代理。

提前做好回复

2 个答案:

答案 0 :(得分:0)

查看WWW :: Sales force的来源,您可以在此处复制代理选项以执行您所需的操作。

答案 1 :(得分:0)

以下是来自WWW :: Salesforce的相关部分,redhotpenguin提到:

my $client =
  SOAP::Lite->readable($readable)
  ->deserializer( WWW::Salesforce::Deserializer->new )
  ->serializer( WWW::Salesforce::Serializer->new )
  ->on_action( sub { return '""' } )->uri($SF_URI)->multirefinplace(1);

if($WEB_PROXY) {
    $client->proxy( $self->{'sf_serverurl'}, proxy => ['https' => $WEB_PROXY ] );
} else {
    $client->proxy( $self->{'sf_serverurl'} );
}