2009-08-04 53 views
-4

我需要发送HTTPS请求而不使用LWP :: UserAgent或HTTP :: request?另一种方法是什么?这是我需要发送请求:如何在不使用LWP :: UserAgent或HTTP :: Request的情况下在Perl中发送HTTPS请求?

POST https://payflowpro.paypal.com/ 
Connection: close 
Host: payflowpro.paypal.com 
Content-Length: 181 
Content-Type: text/namevalue 
X-VPS-CLIENT-TIMEOUT: 30 
X-VPS-REQUEST-ID: 1249403513SNOID 
X-VPS-VIT-INTEGRATION-PRODUCT: Product 
X-VPS-VIT-INTEGRATION-VERSION: 4.0 
X-VPS-VIT-OS-NAME: linux 
X-VPS-VIT-OS-VERSION: 2.6.16-gentoo-r13 
X-VPS-VIT-RUNTIME-VERSION: 5.008007 

EXPDATE[4]=1011&AMT[6]=100.01&ACCT[16]=4111111111111111&TENDER[1]=C&TAXAMT[4]=0.00&PARTNER[8]=******&PWD[9]=******&VENDOR[6]=******&USER[6]=******&TRXTYPE[1]=S&VERBOSITY=MEDIUM 
+3

为什么你不能使用LWP? – 2009-08-05 04:12:48

+0

带有https的LWP不适用于我的网站所在的托管公司使用的服务器。 – user105033 2009-08-06 14:26:37

回答

1

多亏了思南Ünür装基准我能够完成我需要的东西:

my $host = 'pilot-payflowpro.paypal.com'; 
my $port = 443; 
my $sock = IO::Socket::SSL->new("$host:$port") || die $!; 

my $req = 'EXPDATE[4]=1011&AMT[6]=100.01&ACCT[16]=4111111111111111&TENDER[1]=C&TAXAMT[4]=0.00&PARTNER[8]=*****&PWD[9]=******&VENDOR[6]=*****&USER[6]=******&TRXTYPE[1]=S&VERBOSITY=MEDIUM'; 

print $sock "POST https://$host/ HTTPS/1.1\r\n"; 
print $sock "Connection: close", "\r\n"; 
print $sock "Host: ", $host, "\r\n"; 
print $sock "Content-length: ", length $req, "\r\n"; 
print $sock "Content-type: text/namevalue\r\n"; 
print $sock "X-VPS-CLIENT-TIMEOUT: 30", "\r\n"; 
print $sock "X-VPS-REQUEST-ID: 1249403513SNOID", "\r\n"; 
print $sock "X-VPS-VIT-INTEGRATION-PRODUCT: Product", "\r\n"; 
print $sock "X-VPS-VIT-INTEGRATION-VERSION: 4.0", "\r\n"; 
print $sock "X-VPS-VIT-OS-NAME: linux", "\r\n"; 
print $sock "X-VPS-VIT-OS-VERSION: 2.6.16-gentoo-r13", "\r\n"; 
print $sock "X-VPS-VIT-RUNTIME-VERSION: 5.008007", "\r\n\r\n"; 
print $sock $req, "\r\n\r\n"; 

print while <$sock>; 

close $sock; 
5

查找一个SSL库,并打开自己的窝,然后再发送数据

我建议反对,虽然。通过为模块提供正确的参数,可以通过您提到的其中一个模块来正确地执行此操作,以便它能够执行所需的请求。

0

我不确定向我们提供您的PayPal请求ID和其他数据是明智的......发送到服务器的确切数据在这里并不真正相关;更重要的是您使用LWP :: UserAgent时获得的错误类型。您在之前的问题中指出,您正在收到HTTP 500错误,这表明收件人有问题,或者您正在发送被拒绝的数据。

+1

这个数据不是真实的...显然我不会发布这个,LWP :: UserAgent的问题竟然是在我的网页托管的服务器上安装了错误的SSL软件包 – user105033 2009-08-04 17:29:19

相关问题