[英]Sending data from Java to PHP via POST
一方面,我有一个Java程序,它一直在为数据库提供数据。 另一个是Web服务器(Apache)。 我需要通过REST Web服务一次将多个条目从程序传输到远程Web服务器。 虽然我可以毫不费力地将一对值从一个发送到另一个(使用Java端的HttpClient和另一端写入服务器自己的数据库的PHP文件),但我不知道如何构建我的HTTP请求数据。
到目前为止,我一直在使用实体:
List<NameValuePair> list = new ArrayList<NameValuePair>();
list.add(new BasicNameValuePair("field1", "aaa"));
list.add(new BasicNameValuePair("field2", "bbb"));
httppost.setEntity(new UrlEncodedFormEntity(list));
并在我的PHP文件中接收它:
<?php
$field1=$_POST["field1"];
$field2=$_POST["field2"];
$con= mysql_connect("localhost","root");
if(!$con) die("Not able to connect");
mysql_select_db("mydb",$con);
mysql_query("INSERT INTO `mytable` (`field1`, `field2`) VALUES ('$field1', '$field2')");
mysql_close($con);
?>
效果很好。 简单易行。 但是现在,如前所述,我希望从我的数据库中传输几个条目。 每个条目由35个字段组成,这些字段产生一些大数据。
我的问题是: 我如何在一个(或者如果一个HTTP请求容量已满)中插入我的数据库条目并在PHP文件端获取结果数据? 额外奖励:使用之前的解决方案,我该如何压缩这些数据?
您可以使用JSON进行快速简单的传输。 对于解码,PHP支持$array = json_decode($json_string, TRUE);
。
不确定压缩。 您是否会以这种方式传输大量数据以使其相关?
好吧,你正在做的事情将导致SQL注入很容易。 在使用mysql_real_escape_string或更好的预处理语句运行插入查询之前,请确保转义数据。
您可以使用Google Protocol Buffers而不是使用JSON。 您需要JAVA和PHP扩展来使用协议缓冲区,但这是二进制协议,可以非常好地压缩数据并允许您灵活地定义具有相同属性的不同“可重复”对象(条目),以便在打开协议缓冲区时在PHP方面,它将很容易利用数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.