2009-08-04 42 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

相關問題