0

一方面,我有一个不断为数据库提供数据的 Java 程序。另一方面是网络服务器(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 个字段组成,产生一些大数据。

我的问题是: 如何在 ONE 中插入我的数据库条目(或者如果一个 HTTP 请求容量已满,则可以根据需要插入多个条目)并在 PHP 文件端获取结果数据?奖励:使用以前的解决方案,我如何压缩该数据?

4

2 回答 2

1

您可以使用 JSON 进行快速简单的传输。对于解码,PHP 支持$array = json_decode($json_string, TRUE);.

不确定压缩。您是否要以这种方式传输大量数据以使其具有相关性?

于 2012-12-12T15:54:05.310 回答
1

好吧,你正在做的事情很容易导致 SQL 注入。确保在使用 mysql_real_escape_string 或更好的准备语句运行插入查询之前转义数据。

您可以使用Google Protocol Buffers而不是使用 JSON 。您需要 JAVA 和 PHP 扩展才能使用协议缓冲区,但这是一种二进制协议,可以非常好地压缩数据,并允许您灵活地定义具有相同属性的不同“可重复”对象(条目),这样当您打开协议缓冲区时在 PHP 方面,将很容易利用数据。

于 2012-12-12T16:14:18.073 回答