2012-12-15 55 views
2

我正在處理Android應用程序,我試圖從服務器獲取JSON響應,該服務器被配置爲返回一個json對象(「.../current_user.json「)時收到GET消息,但我得到的答案是HTML格式,而不是JSON格式與預期的一樣。錯誤Android - 收到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); 
+0

當你檢查HTML的文本時,你發現了什麼錯誤信息(如果有的話)?當您聯繫Web服務的開發人員處理此問題時,開發人員告訴您什麼?如果這是您自己的Web服務,那麼當您檢查服務器上的請求時,您發現了什麼? – CommonsWare

+0

收到的HTML沒有任何錯誤信息,它只是來自網站的普通HTML。我還沒有檢查服務器上的請求。 – user1906403

+0

我懷疑你在響應中缺少或有html內容類型標題。您可以通過檢查答覆標題來澄清它。你能告訴我們服務控制器代碼嗎? –

回答

1

有你在哪裏得到HTML文本

  1. 您可能已經調用了錯誤的函數,它給出了一個404頁的少數病例。

  2. 可能是在服務器端的數據庫錯誤,你會得到數據庫錯誤消息

  3. 服務器可能會傳遞具有HTML標籤

但你最好一個樣式數據記錄響應並將其粘貼到此處。

+0

我得到了正常的200 OK響應狀態。這裏是我得到的HTML響應內容的日誌: http://postimage.org/image/9ojnivm8r/ – user1906403