2013-02-12 60 views
0

我有一個方法需要一個非常長的字符串,90,860個字符,並將其傳遞給一個PHP頁面,然後將其插入到數據庫中。我已經讀過,PHP帖子的大小沒有限制,高達8mb左右。我假設這段長度的字符串應該沒問題。在Java和PHP之間傳遞一個長字符串?

msg = URLEncoder.encode(stringToEncode.toString(),"UTF-8"); 

     DefaultHttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httpPost = new HttpPost("http://mysite.com/insert.php?data="+msg); 
     HttpResponse response1 = httpclient.execute(httpPost); 

我知道這可以工作,因爲我可以插入短簡單字符串。

在我的PHP頁面我剛剛得到這個職位數據,如:

$data = $_GET['data']; 

並將其插入。我是否需要添加一些額外的PHP來解碼郵件信息?我讀過它應該由PHP自動完成。

問題是,對於長字符串,我得到一個500錯誤,或者如果我把字符串放在我的瀏覽器中,我只是得到一個頁面不可用。

在此先感謝!

+2

您正在使用POST請求來發送URL中的數據? – 2013-02-12 16:27:18

+0

是的,我正在使用帖子。 – 2013-02-12 16:28:45

+3

呃...我的建議是你在請求正文中發送數據,而不是URL。 – 2013-02-12 16:30:43

回答

3

在Java程序,你不應該通過你的數據,特別是當它長,在URL,看this question例如代碼如何正確地傳遞Post參數

從PHP方面來說,您應該使用$data = $_POST['data'];

1

限制因素將是服務器願意接受的URL的最大允許長度。我不記得是否有一些最低限度的所有服務器都必須支持,但是我們之前做過的測試表明,根據服務器類型的不同,URL長度限制通常在2k到10k個字符之間 - 這似乎由Paul Dixon's extensive answer to this question確認。

爲了規避這個限制,使用multipart post