2015-02-05 3 views
1

Я новичок в android. У меня есть метод post post API для отдыха. Я должен предоставить электронную почту и пароль API. Это обеспечит ответ, который будет в формате JSON как формат нижеОбработка ответа json в методе post android

{ 
error: "This email is already registered " 
status: 404 
} 

сырье ответ будет иметь форму, как показано ниже

{"error":"This email is already registered\n","status":404} 

Я послал пары значений имени успешно, но я не» t знать, как справиться с этим типом ответа. Может ли кто-нибудь помочь мне с этим? вот мой код

protected String doInBackground(String... params) { 

      //HttpClient httpclient = new DefaultHttpClient(); 
      HttpPost httppost = new HttpPost("https://zigron.goabode.com/api/registration/new"); 
     PostMethod post = new PostMethod("https://zigron.goabode.com/api/registration/new"); 

     String resp=null; 

     try 
     { 
      List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
      nameValuePairs.add(new BasicNameValuePair("email", email_s)); 
      nameValuePairs.add(new BasicNameValuePair("password", pwd_s)); 

      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
      System.out.println(nameValuePairs); 

      resp=post.getResponseBodyAsString(); 
      return resp; 

     } 

последние два утверждения неверны. Я обработки, что как строка, которая не должна быть сделана

+0

Как вы упомянули, вы добились успеха. До. Что такое код статуса. Следовательно, вы можете сравнить строку 'resp' для статуса и найти успешную или нет – MDMalik

ответ

0

Вы можете использовать следующий код для доступа к Post WebService ...

public static List<NameValuePair> addMediaParameter() { 
    List<NameValuePair> params = new LinkedList<NameValuePair>(); 
    params.add(new BasicNameValuePair("offset", "0")); 
    params.add(new BasicNameValuePair("length", "100")); 
    // params.add(new BasicNameValuePair("limit", "3")); 
    return params; 
} 

public static String responseRetriever(String url, 
     List<NameValuePair> values) { 
    try { 
     String paramString = ""; 
     if (values != null) 
      paramString = URLEncodedUtils.format(values, "utf-8"); 

     HttpClient httpclient = new DefaultHttpClient(); 
     HttpGet httpget = new HttpGet(url + paramString); 
     HttpResponse response; 
     response = httpclient.execute(httpget); 
     HttpEntity entity = response.getEntity(); 

     if (entity != null) { 
      String data = EntityUtils.toString(entity); 

      if (data != null && data.length() > 0)     
       return data; 
      else 
       return null; 
     } 
    } catch (Exception e) { 
     Log.e("responseRetriever", e.toString()); 
    } 

    return null; 
} 



String response_data = responseRetriever("yourURL", addMediaParameter()); 

Это response_data даст вам полный ответ вашего веб-сервиса в виде строки , Теперь вы можете проанализировать строку в соответствии с вашим ответом: Как

JSONObject jsonresponse = new JSONObject(response_data); 
String error_message = jsonresponse.getString("error"); 

Анализ в соответствии с вашим ответом.

+0

Спасибо, но моя служба отправит JSONObject в качестве ответа. Он не отправит строку. Мне нужно получить этот JSONOBject и проанализировать его в соответствии с моей потребностью. –

+0

response_data - это строка вашего JSONObject и ниже код преобразует эту строку в JSONObject JSONObject jsonresponse = new JSONObject (response_data); Здесь я разбираю ваш JSONObject, чтобы получить значения fron JSONObject. String error_message = jsonresponse.getString ("error"); Надеюсь, это поможет вам. – Shadik

+0

Спасибо за ответ –

0

Я использую https-ссылку для этого, мне нужно написать TrustManager. Android не будет принимать https по умолчанию там, где будет http.

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