2015-12-19 2 views
0

Я искал правильный путь и попробовал их, но не получил нужного результата. Мой код выглядит следующим образом:Как я могу получить данные веб-сервера в приложении Android?

public String getData(String pc) throws Exception 
{ 
    // TODO Auto-generated method stub 
    try 
    { 

     HttpClient client = new DefaultHttpClient(); 
     String link = "http://107.180.8.153/androidt/check-pin-code.php?user_pincode="+pc; 
     URL url = new URL(link); 
     HttpGet request = new HttpGet(); 
     request.setURI(new URI(link)); 
     HttpResponse response = client.execute(request); 
     BufferedReader in = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); 

      StringBuffer sb = new StringBuffer(""); 
      String line=""; 

      while ((line = in.readLine()) != null) 
      { 
       sb.append(line); 
       break; 
      } 
      in.close(); 
      return sb.toString(); 
     } 

     catch(Exception e) 
     { 
      return new String("Exception: " + e.getMessage()); 
     } 
    } 

На печать возвращенный результат ... Я получаю «Exception: нулевой» .. пожалуйста, помогите

+0

Вы проверили данные в браузере ??? – curiousMind

+0

дайте образец работоспособного url, я попытался, но никаких данных в ответ, https: //www.cloudshoppe.in/androidt/check-pin-code.php? User_pincode = 110093 – Androider

+0

@Androider Как вы нашли 'user_pincode'? –

ответ

0

Первое, что вы как раз с использованием некоторых устаревших методов, как HttpClient. Таким образом, проверьте код ниже с лучшими методами, как предложено http://developer.android.com/about/versions/marshmallow/android-6.0-changes.html

AsyncTask Класс:

public class MyTask extends AsyncTask<String, String, String> { 
     protected void onPreExecute() {} 
     @Override 
     protected String doInBackground(String... urls) { 
      Log.e("url",urls[0]); 

      HttpURLConnection urlConnection = null; 
      StringBuilder builder = new StringBuilder(); 
//  Integer result = 0; 
      try { 
       /* forming th java.net.URL object */ 
       URL url = new URL(urls[0]); 
       urlConnection = (HttpURLConnection) url.openConnection(); 

//     /* optional request header */ 
//    urlConnection.setRequestProperty("Content-Type", "application/json"); 
// 
//    /* optional request header */ 
//    urlConnection.setRequestProperty("Accept", "application/json"); 

       /* for Get request */ 
       urlConnection.setRequestMethod("GET"); 

       int statusCode = urlConnection.getResponseCode(); 
//    Toast.makeText(ForgotPassword.this,String.valueOf(statusCode),Toast.LENGTH_SHORT).show();; 

       /* 200 represents HTTP OK */ 
       if (statusCode == 200) { 



        BufferedReader in = new BufferedReader(
          new InputStreamReader(urlConnection.getInputStream())); 
        String inputLine; 
//    StringBuffer response = new StringBuffer(); 

        while ((inputLine = in.readLine()) != null) { 
         builder.append(inputLine); 
        } 
        in.close(); 

       } 

      } 
      catch (Exception e) { 
       e.printStackTrace(); 

      } 
      return builder.toString(); 
     } 
     protected void onPostExecute(String result) { 

Log.e("result",result); 
      JSONArray pin= null; 
      try { 
       pin = new JSONArray(result); 
       String pinValue= pin.getJSONObject(0).getString("Pin"); 
       Log.e("pinvalue",pinValue); //this is what you like 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 



     } 
    } 

Не забудьте предоставить разрешение Интернет в Manifest.xml.

Thanks

+0

Попробуйте https://www.cloudshoppe.in/androidt/check-pin-code.php?user_pincode=751024 –

+0

@RaunakSinghChauhan, спасибо, теперь я дам вам решение с новым и нелицензированные методы – Androider

+0

@RaunakSinghChauhan, проверьте ответ, который работает с моего конца, полностью протестирован. – Androider