如何通过HTTPPost发送数组

时间:2011-11-02 17:08:47

标签: java android http

我必须通过httppost发送这些参数。从我的Android应用程序到drupal服务器。

这是php表示

$data = array(
        'node' => array(
            'type' => 'celapp_order',
            'title' => 'order celeb: nixon-fan '.date("j.m.Y H:i:s"),
            'field_fan_uid' => array(0 => array('uid' => 4)),
            'field_celeb_uid' => array(0 => array('uid' => 5)),
            'field_celeb_price' => array(0 => array('value' => 0.79))
        )
    );

过去我使用过namevaluepairs。我无法弄清楚如何使用namevaluepairs发送参数。如果有人可以提供帮助,我会非常感激

2 个答案:

答案 0 :(得分:1)

使用JSON包装器:

$postable = json_encode($data); // in PHP, there's equivalents for Java out there.

那将把数组转换成明文(基本上是javascript),这很容易通过POST发送。接收端将使用json_decode()(或其特定平台上的等价物)将JSON版本转换回本机数组/对象。

答案 1 :(得分:0)

我已经使用 GSON 为序列化/反序列化JSON ro和普通的旧java对象(PO​​JO)提供了很好的结果。链接到数组示例 here

e.g:

public class Foo {

    private string Bar;
    private int Num;
}

Foo[] foos = new Foo[] ... // create array here

Gson gson = new Gson();
String text = gson.toJson(foos);

/*
output: 

[
  {
     "Bar" : "Hello",
     "Num" : 25
  },
  {
     "Bar" : "World",
     "Num" : 42,
  }
]

*/