2

我正在开发一个Android应用程序,我正在尝试从服务器获取JSON响应,该服务器配置为在接收到GET消息时返回一个 json 对象(“.../current_user.json”),但答案我get 是HTML格式,而不是预期的JSON格式。

我不明白为什么会发生这种情况,因为我在浏览器和程序RESTClient上做了相同的请求,并得到了JSON格式的正确答案。

这是我正在使用的代码。

        JSONObject json = new JSONObject();

            HttpParams params = new BasicHttpParams();
            HttpConnectionParams.setSoTimeout(params, 10000);
            HttpClient httpClient = new DefaultHttpClient(params);
            HttpGet get = new HttpGet(url_getiduser);

            HttpResponse response = httpClient.execute(get);                 
            String sresponse = "error";

            Log.d("url get", url_getiduser);
            Log.d("pedido get", get.getMethod());
            if(response != null)
            {
                InputStream in = response.getEntity().getContent();
                sresponse = convertStreamToString(in);

                Log.d("resposta http", sresponse);
                if(!sresponse.equals("error"))
                {

                    JSONObject object = new JSONObject(sresponse);
                    id_user = (String) object.get("id");

                    json = object;
                    Log.d("objecto json", object.toString());

                }
                else Log.d("Error on json parser", sresponse);
4

1 回答 1

1

在少数情况下您会获得HTML 文本

  1. 你可能调用了一个错误的函数,它给出了一个 404 页面。

  2. 可能是服务器端的数据库错误,您将收到数据库错误消息

  3. 服务器可能正在发送具有HTML 标记的样式数据

但是您最好记录响应并将其粘贴到此处。

于 2012-12-15T16:00:10.800 回答