一方面,我有一个Java程序,它一直在输入数据库。另一方面,web服务器(Apache)。我需要传输多个条目,同时,从程序到一个远程web服务器通过一个REST网络服务。虽然我很容易将值从一个发送到另一个(使用HttpClient端的和另一端写入服务器数据库的PHP文件),但我不知道如何用数据构建HttpClient。
到目前为止,我一直在使用一个实体:
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端获取结果数据?好处是:使用前面的解决方案,我如何压缩数据?
发布于 2012-12-12 15:54:05
您可以使用JSON进行快速和简单的传输。对于解码,PHP支持$array = json_decode($json_string, TRUE);。
不知道怎么压缩。你会以这种方式传输大量数据吗?
发布于 2012-12-12 16:14:18
好吧,您正在做的事情很容易导致SQL注入。在使用mysql_real_escape_string或准备得更好的语句运行insert查询之前,请确保转义数据。
您可以使用Google协议缓冲区,而不是使用JSON。您需要JAVA和PHP扩展来使用协议缓冲区,但是这是一种二进制协议,可以很好地压缩数据,并允许您灵活地定义具有相同属性的不同“可重复”对象(条目),这样在PHP端打开协议缓冲区时,就可以很容易地利用数据。
https://stackoverflow.com/questions/13843055
复制相似问题