android - 如何从android向服务器发送数据

标签 android http httpclient http-post

我正在探索从 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= {"userId":"guest1","timestamp":"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 - 如何从android向服务器发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3156975/

相关文章:

.net - 如何处理 "no action required"HTTP 响应

php - Http 请求在模拟器上失败

java - 为什么HttpClient执行post方法后停留在登录页面?

Android:登录网站并使用 DefaultHttpClient 保留 session /cookie

android - 找不到具有权限的提供者的元数据

android - Facebook Native Ads Manager Android 广告 nativeAd.isAdInvalidated() 返回 true

android - 获取 native 库的 native 地址时出错 : task_vision_jni_gms

android - <compatible-screens> 在 Google Play 中排除来自 Nexus 5x 的应用

java - 如何在 HTTP 响应主体(使用 Spark)中发送 QR 码的 PNG?

java - jetty 升级 8 至 9 个缺失的类(class)