【问题标题】:Get a JSON response to Android [closed]获取对 Android 的 JSON 响应 [关闭]
【发布时间】:2014-05-14 07:34:34
【问题描述】:

我只是想在服务器 (Django) 中获得一个从°C 到°F 的简单转换器 Django 后端没问题,但我只想要一种简单的方法来获取该信息并在 Android 应用程序中打印它:

网址:192.168.1.212:8000/c_f/4.0

响应是:

{"far": 39.2}

我试过了,但我只发现巨大的代码,似乎没有任何工作。

【问题讨论】:

  • 你的代码在哪里?你试过什么?

标签: android json web-services


【解决方案1】:
class sampleService extends AsyncTask<Boolean, Boolean, Boolean> {

    @Override
    protected Boolean doInBackground(Boolean... params) {
        HttpClient httpClient = new DefaultHttpClient();
        HttpGet del = new HttpGet("192.168.1.212:8000/c_f/4.0");
        del.setHeader("content-type", "application/json");
        try {
            HttpResponse resp = httpClient.execute(del);
            String respStr = EntityUtils.toString(resp.getEntity());
            JSONObject respJSON = new JSONObject(respStr);
            String far = respJSON.getString ("far"); //Check your type data to return in your web service.
            Log.d("Service", far);
        } catch(Exception ex) {
            Log.e("Service","Error!", ex);
        }
        return null;
    }

}

【讨论】:

  • 我在哪里得到 JSONObject? Boolean...params 是什么意思?
  • JSONObject 是一个集成在 Android 中的库。布尔参数只是因为我们需要一个值来执行 AsyncTask。你需要做:新的 sampleService().execute(true);
  • 在我的视图中如何在我的 onClick 函数中调用这个类?
  • button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { new sampleService().execute(true); } });
  • 无论如何,这仍然不起作用,但至少这不再崩溃了。我不知道会发生什么,但它在 try{} 块中停止工作。
【解决方案2】:

您可以使用 httppost 和 httpClient 来启用从网络获取响应

例子

String getURL = "192.168.1.212:8000/c_f/4.0";

        HttpClient client = new DefaultHttpClient();  

        HttpPost httppost = new HttpPost(getURL);
HttpResponse responseGet = client.execute(httppost);  
        HttpEntity resEntityGet = responseGet.getEntity(); 
Lod.d("response", EntityUtils.toString(resEntityGet));

【讨论】:

  • 我试过了,但是应用崩溃了!我需要一些不同于 android.permission.INTERNET 的权限吗?
猜你喜欢
  • 2020-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-28
相关资源
最近更新 更多