2015-10-22 5 views
-1

Я пытаюсь отправить некоторые данные по API. Однако мой APP не дает никакого ответа. Ничто не приводит к ошибке и не останавливается. Как будто ничего не случилось. Я немного новичок в android, поэтому любезное руководство. Кроме того, я знаю, что HTTPClient и другие импортеры стали устаревшими.HTTP-запрос на отправку NULL в Android

public void makePostRequest() 
{ 
    class makePostRequestAsyncTask extends AsyncTask<Void, Void, String> { 


     @Override 
     protected String doInBackground(Void... params) { 

      HttpClient httpClient = new DefaultHttpClient(); 
      HttpPost httpPost = new HttpPost("http://103.226.216.209/finger_varification/api/finger_verification"); 
      List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(7); 
      nameValuePair.add(new BasicNameValuePair("sec_key", "2af8b9d956c39d2d52c46c2a02a978d1")); 
      nameValuePair.add(new BasicNameValuePair("cnic", "3520214037921")); 
      nameValuePair.add(new BasicNameValuePair("imei_no", "864121017028886")); 
      nameValuePair.add(new BasicNameValuePair("device_name", "FingerMap5")); 
      nameValuePair.add(new BasicNameValuePair("finger_index",index)); 
      nameValuePair.add(new BasicNameValuePair("finger_template", "sdsd"));//model1.toString())); 
      nameValuePair.add(new BasicNameValuePair("template_type", "RAW_IMAGE")); 

      try { 
       httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair)); 
      } catch (UnsupportedEncodingException e) { 
       // log exception 
       e.printStackTrace(); 
      } 


      //making POST request. 
      try { 
       HttpResponse response = httpClient.execute(httpPost); 
       // write response to log 

       Log.d("Http Post Response:", response.toString()); 
      } catch (ClientProtocolException e) { 
       // Log exception 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // Log exception 
       e.printStackTrace(); 
      } 

      return null; 
     } 
     @Override 
     protected void onPostExecute(String result) { 
      super.onPostExecute(result); 

      if(result.equals("working")){ 
       Toast.makeText(getApplicationContext(), "HTTP POST is working...", Toast.LENGTH_LONG).show(); 
      }else{ 
       Toast.makeText(getApplicationContext(), "Invalid POST req...", Toast.LENGTH_LONG).show(); 
      } 
     } 


    } 

} 
+0

Привет @Muhammad Abdullah, у вас есть следующее в вашем файле манифеста? '' – AuroMetal

+0

да .... у меня есть –

ответ

0

Это, как вы получите тело ответа

HttpResponse response = httpClient.execute(httpPost); 
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8")); 
String response_body = reader.readLine(); 
Log.d("Http Post Response:", response_body); 

Кстати, HttpPost и HttpResponse осуждается на API 23, используйте HttpURLConnection вместо

+0

Точно устаревшее означает? Думаю, это сработает. Как вы думаете? Кроме того ... Я не уверен, как отправлять и получать с помощью HttpURLConnection .... так как у меня есть 7 строк для отправки. –

+0

@MuhammadAbdullah: Значение устаревших объясняется здесь http://stackoverflow.com/questions/8111774/deprecated-meaning Короткий рассказ, он не будет поддерживаться для дальнейшей разработки/исправления ошибок в версиях после API 23. Следовательно вам лучше использовать HttpURLConnection, как упоминалось NaviRamyle – Araw

+0

@MuhammadAbdullah, в отношении HttpURLConnection я взял этот кусок кода из своих личных небольших проектов. URL url = новый URL (uri [0]); HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); httpURLConnection.setRequestMethod ("GET"); // Запрос будет автоматически запущен по требованию, если вы хотите получить // любая информация об ответе HTTP httpURLConnection.connect(); int statusCode = httpURLConnection.getResponseCode(); ' – AuroMetal