我正在探索从android扫描ssid和rssi,我能够做到,但是现在我想把数据发送到服务器,所以我探索了下面的代码

    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参数怎么做,有人能帮上忙吗,我还在尝试几个品种,
谢谢

最佳答案

我建议您切换到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;
}

在android中解析json的类似问题上,您可以查看here中的示例代码。
This也可能有用。

10-07 19:15
查看更多