2011-11-02 157 views
0

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

这是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发送参数。如果有人可以帮助我将非常感激

+0

你阵列示于PHP语法。它在java中如何表示?哈希表? HashMap的?别的东西?你是从android发送它到另一台服务器还是从另一台服务器? –

+0

对不起,我不太清楚。我将它从Android发送到Drupal服务器。它没有在java中表示。我有很多字符串需要填充数组,然后通过Httppost发送 – jiduvah

+0

正如Marc B所回答的,您应该使用json编码来传递这样的数据结构。 –

回答

1

使用JSON包装:

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

那将数组转换为纯文本(基本的JavaScript),这是很容易通过POST发送。接收端将使用json_decode()(或其它相当于该特定平台的内容)将JSON版本转换回本地数组/对象。

+0

对不起,我的问题不是很清楚,我已经更新了 – jiduvah

0

我已经使用GSON对于序列化/反序列化JSON ro以及从普通的旧Java对象(PO​​JO)中获益良多。链接到阵列示例here

例如为:

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, 
    } 
] 

*/