我有一个方法,它接受一个非常长的字符串,90,860个字符并将其传递给PHP页面,然后将其插入到数据库中。我已经读过,PHP帖子的大小没有限制,大约为8mb。我假设这个字符串长度应该没问题。
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错误,要么我把字符串放在我的浏览器中,我只是得到一个页面不可用。
提前致谢!
答案 0 :(得分:3)
在Java程序中,您不应该传递数据,特别是在数据很长时,在网址中,请参阅this question,例如代码如何正确传递Post
参数
从PHP方面来说,您应该使用$data = $_POST['data'];
答案 1 :(得分:1)
限制因素是服务器愿意接受的URL的最大允许长度。我不记得是否有一些最低限度的所有服务器必须支持,但我们之前做过的测试表明,根据服务器类型,URL长度限制通常在2k到10k字符之间 - 这似乎由Paul Dixon's extensive answer to this question确认
要规避此限制,请使用multipart post