2015-02-19 3 views
0

I`m пытается потреблять REST API в Android, но ответ возвращается ноль ... и в веб-клиенте и клиента IOS, его возвращения словаря в формате JSONПотребляйте REST API - отправить почту, получить JSON

есть мой код:

final Handler h = new Handler(); 
    final Runnable r1 = new Runnable() { 

     @Override 
     public void run() { 
      System.out.println("onClick!!!"); 
      HttpClient httpClient = new DefaultHttpClient(); 
      HttpPost post = new HttpPost("http://applocalize.com.br/rest/rest.php"); 
      post.setHeader("content-type", "application/text; charset=UTF-8"); 
      post.setHeader("Accept", "application/json"); 
      //Construimos el objeto cliente en formato JSON 
      JSONObject dato = new JSONObject(); 

      try { 
       dato.put("pg","categorias"); 
       dato.put("serv", "buscar"); 
       dato.put("dt_atualizacao", "0`"); 

       StringEntity entity = new StringEntity(dato.toString()); 
       post.setEntity(entity); 
       HttpResponse resp = httpClient.execute(post); 
       String respStr = EntityUtils.toString(resp.getEntity()); 
       if (resp.getStatusLine().getStatusCode() == 200) 
       { 
        System.out.println(respStr); 
        JSONArray temp1 = new JSONArray(respStr); 
       } 
       System.out.println("OKAY!"); 
      } catch (ClientProtocolException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }; 
    h.postDelayed(r1, 5000); 
+0

Что является содержимым 'resp.getEntity(). GetContent()'? – vinitius

+0

respStr is '' (пусто) – Developer2012

+0

Вы можете разместить код для веб-клиента? (Я предполагаю, что это какой-то $ .ajax?) – njzk2

ответ

1

Ваш бэкенд, кажется, ожидает ValuePairs в запросе после, но вы отправляете сырое JSONObject в организме. Попробуйте следующее:

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
nameValuePairs.add(new BasicNameValuePair("pg","categorias")); 
nameValuePairs.add(new BasicNameValuePair("serv","buscar")); 
nameValuePairs.add(new BasicNameValuePair("dt_atualizacao","0")); 
try{ 
      post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
     }catch (UnsupportedEncodingException e){ 

     } 
+0

такой же результат: (( – Developer2012

+0

) Я использовал ваш код и прокомментировал следующую строку: 'post.setHeader (« content-type »,« application/text; charset = UTF-8 »);' Спасибо! – Developer2012

Смежные вопросы