如何发送数据从android到服务器
问题描述:
我正在探索从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参数之三,任何人都可以帮忙,我仍然试图对少数品种,
感谢
答
我会建议您切换到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也许是有用的。
为什么在android SDK附带json库时引入额外的第三方依赖关系? – Schildmeijer 2010-07-01 14:04:06
我发现GSON更容易用于将POJO转换为json,反之亦然,而不是固有的json库。 – primpap 2010-07-01 14:27:19
为什么我们不能使用POST而不使用JSON ..大多数情况下,我会将图像发送到服务器。 – 2011-11-10 05:37:53