我有一个java应用程序,它将文本发送到服务器上的sql数据库。目前我的java应用程序接收文本,将其放入url,然后将其发送到服务器上的php页面,该页面将其带入GET并将其放入数据库中。在一定程度上工作正常,问题是,我需要能够发送大量的文本,并且我一直得到414,uri长期错误。有更好的方法吗?
好吧,我试过你说的,并阅读教程,但有些东西不起作用。这是我试过的代码public void submitText(String urls,String data) throws IOException{
URL url = new URL(urls);
URLConnection con = url.openConnection();
con.setRequestProperty("Content-Type", "text/plain; charset=utf-8");
con.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream(), "UTF-8");
out.write(data);
out.flush();
}
submitText(server + "publicPB.php", "param=" + text);
这是我的PHP代码
$param = $_POST['param'];
$sql = "UPDATE table SET cell='{$param}' WHERE 1";
mysql_query($sql);
...
我很确定这不是php的问题,因为php在GET上工作得很好,这就是我用它改变了,我认为我的问题是我不是100%确定如何用java发送数据< / p>
答案 0 :(得分:3)
使用POST
代替GET
并将文本作为请求正文发送。您只能将如此多的数据传递给URL。例如:
// Assuming 'input' is a String and contains your text
URL url = new URL("http://hostname/path");
URLConnection con = url.openConnection();
con.setRequestProperty("Content-Type", "text/plain; charset=utf-8");
con.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream(), "UTF-8");
out.write(input);
out.close();
有关详细信息,请参阅Reading from and Writing to a URLConnection。
答案 1 :(得分:2)
为什么不使用POST
将数据发送到PHP页面? GET
确实有smaller limit of content。
答案 2 :(得分:1)
使用没有内容长度限制的POST请求。
答案 3 :(得分:0)
POST请求没有长度内容限制,并且比GET请求更安全;)
答案 4 :(得分:0)
如果使用SQL Server,我会考虑利用BCP。您可以编写文件并从Java中调用BCP,它会将信息直接发送到您的数据库。