php
2013-01-25 70 views -1 likes 
-1

基本上,標題說。我需要弄清楚如何將這個HTTP POST請求發送到另一個網站。 (這是我的朋友,因此我不擁有它)如何將此HTTP POST數據包發送到網站?

<html> 
    <body> 
      <form method="post"> 
        <input type="hidden" 
        <?php 
          echo " value='"; 
          for($i=0;$i<2147483648;$i++) 
            { 
              echo "a"; 
            } 
          echo "'"; 
        ?> 
        > 
        <input type="submit"> 
      </form> 
<?php if(isset($_POST['test'])){ 
    echo $_POST['test']; 
} 
?> 
    </body> 
</html> 
+1

我是否錯過了JAVA部分?我看起來像一個PHP問題。 –

+0

糟糕,我把它放在Java部分嗎? –

+2

你發佈的是一個php腳本,而不是發佈的請求。如果你想要做的只是發送請求,不要打擾Java,只需使用['curl'](http://en.wikipedia.org/wiki/CURL)或者像[this]這樣的工具(http: //en.wikipedia.org/wiki/CURL)。 –

回答

1

目前,您的代碼會創建一個小型網頁。該網頁使用HTML form將數據發送到網站。

您可以通過編輯<form>標記來更改此數據的位置和方法。目前,它使用post(而不是get),它沒有目標網址。如果沒有目的地,那麼它會將數據發送給自己。你可以設置一個目的地與action屬性,像這樣:

<form method="post" action="http://example.com/pagename"> 

一旦完成,在瀏覽器中查看此頁面。你應該看到一個按鈕。一旦你點擊它,它會將數據發送到action設置的任何地方。

編輯

它看起來像你正嘗試將大量的數據發送到該服務器。這可能無法像HTML表單那樣正常工作。

另一種方法是使用cURLcURL可讓您在PHP頁面的代碼中創建POST數據。這可能是更實際採取一個大的文件(如電影或某事物)和POST它給你的朋友的服務器是這樣的:

<?php 
// Code from http://forums.devshed.com/php-development-5/php-curl-send-a-file-533233.html 

// write the path to your file here: 
$filename = 'C:/myenormousfile.avi'; 

// write the url to your friend's site here: 
$url = 'http://example.com/filename'; 

$file_to_upload = array('file_contents'=>'@' . $filename); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_POST,1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $file_to_upload); 
$result=curl_exec ($ch); 
curl_close ($ch); 
echo $result; 
?> 

保存此爲.php文件,並查看文件通過你的本地主機。如果它工作正常,那麼它會嘗試POST該文件到您的朋友的網站。然後它會顯示指示上傳是否成功的文本。

編輯#2

這可能是一個更簡單的方法。它是一個HTML網頁,因此您唯一需要做的就是將這些代碼保存到.html文件中,然後在任何瀏覽器中查看:您不需要對PHP或web服務器執行任何操作。這個頁面會讓你選擇一個文件(再次,你應該用它來選擇一個大文件),並將其發佈到你的朋友的網站。該文件的大小可以高達〜4 GB。您可以更改<form>元素的action屬性以將文件發送到其他位置。

<!doctype html> 
<html> 
<head><title>Pick a File and POST it to your Friend&apos;s Server</title></head> 
<body> 
<form action="http://www.example.com/pagename" method="post" enctype="multipart/form-data"> 
<input type="hidden" name="MAX_FILE_SIZE" value="5000000" /> 
<input type="file" name="uploadField" /> 
<input type="submit" value="Go" /> 
</form> 
</body> 
</html> 

粘貼到這個文件,將其保存爲post.html,再看看在Windows資源管理器的文件。然後右鍵點擊文件並用瀏覽器打開它。你應該看到一個「瀏覽...」按鈕和一個說「開始」的按鈕。使用「瀏覽...」選擇一個巨大的文件,然後點擊「開始」,看看會發生什麼。

+0

如何下載cURL或使用它?我幾乎沒有這方面的經驗。另外,是的,它是我通過POST發送的非常大的文件。另外,你能否告訴我我要添加什麼來發送...... www.example.com?謝謝,任何有用的建議或聲明表示讚賞。 –

+0

那麼,從我能收集到的情況來看,它會看起來類似於此? http://imgur.com/rkkBtei.jpg –

+0

聽起來你對PHP也有點新鮮。您的圖片包含您需要構建小型網頁所需的代碼。我不會爲'iframe'的東西而煩惱,因爲你會想看看這是否實時工作。你需要通過你的'localhost'運行這個網頁。嘗試搜索「Hello World」PHP示例以瞭解如何執行此操作。如果工作正常,那麼該頁面需要一段時間才能加載,然後您會看到一個按鈕。一旦你點擊它,那麼該頁面將等待片刻,然後將你發送到你朋友的頁面。它應該顯示爲該網站正在加載一段時間。 – Chris

0

正如@克里斯

提到

您可以使用完整的路徑在行動和使用的目標,如果你不能重定向到這個網址

<form method="post" action="http://example.com/pagename" target="myIframe"> 

<iframe name="myIframe" style="display:none"></iframe> 

EDITED

enter image description here

該圖像ilustrate兩個解決方案

+0

如果使用cURL,則不可以複製發佈內容並將其發送到其他服務器。通過我的例子,你將直接發送所有數據到URL目的地。實現起來更加簡單,但是如果您想在發送到另一臺服務器之前複製發佈的內容,您需要cURL –

+0

如何獲取cURL?從我所看到的沒有下載,所以我發現自己懷疑它是一個文件。 –

+0

cURL在這種情況下,它是一個PHP擴展。 http://php.net/manual/en/curl.installation.php –

相關問題