2010-07-01 65 views
3

我正在探索从android扫描ssid和rssi,我能够做到这一点,但现在我想要发送数据到服务器,所以我探索我发现下面的代码如何发送数据从android到服务器

HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("http://101.34.45.45/rawData"); 

    try { 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3); 
     nameValuePairs.add(new BasicNameValuePair("userId", "00-22-68-E8-EC-F1")); 
     nameValuePairs.add(new BasicNameValuePair("timestamp", "2010-07-01 11:11:11")); 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     HttpResponse response = httpclient.execute(httppost); 
     textView.setText(response.toString()); 

    } catch (ClientProtocolException e) { 
    } catch (IOException e) { 
    } 

但现在我遇到问题时,添加多的WiFi数据,格式应如下

http://101.34.45.45/rawData?data= { “用户id”: “guest1” 联接, “时间戳”:“2010-07-01 08 :58:23“,”wifi“:[{”ssid“:”guest“,”rssi“:”40“},{”ssid“:”guest1“,”rssi“:”80“}]},

所以如何做到的wifi参数之三,任何人都可以帮忙,我仍然试图对少数品种,

感谢

回答

1

我会建议您切换到JSON用于将数据发送到服务器。 Google gson最容易使用来发送和解析JSON。

{"userId":"guest1","timestamp":"2010-07-01 08:58:23","wifi":[{"ssid":"guest","rssi":"40"},{"ssid":"guest1","rssi":"80"}]} 

您应该使用具有JSON数组的JSON对象作为其项目之一。 JSON数组又包含另一个json对象。

如果您使用的是Google GSON,则应该为其构建类层次结构。下面你应该怎么做。

Class data{ 

String userId; 
String timestamp; 
Wifi wifi; 
} 

Class Wifi{ 

String ssid; 
int rssi; 
} 

您可以在一个类似的问题,检查here的示例代码在Android的解析JSON。

This也许是有用的。

+0

为什么在android SDK附带json库时引入额外的第三方依赖关系? – Schildmeijer 2010-07-01 14:04:06

+0

我发现GSON更容易用于将POJO转换为json,反之亦然,而不是固有的json库。 – primpap 2010-07-01 14:27:19

+0

为什么我们不能使用POST而不使用JSON ..大多数情况下,我会将图像发送到服务器。 – 2011-11-10 05:37:53

相关问题