2016-03-08 3 views
-1

У меня есть метод в приложении для Android, в котором используется класс HttpPost. Он отлично работал с целевым sdk 4.4.2, но я внес некоторые изменения и сделал целевой файл sdk равным 23 (6.0). Теперь класс HttpPost дает ошибку. Я также читал о HttpUrlConnection, но не знаю, как его использовать. Вот мой кодОшибка HttpPost в API 23 android

private String getJSON(String URL, JSONObject obj) throws JSONException { 
     String responseString = null; 
     try { 

      HttpPost httppost = new HttpPost(URL); 
      StringEntity se = new StringEntity(obj.toString(), HTTP.UTF_8); 
      httppost.setHeader("Content-Type", "application/json"); 

      httppost.setEntity(se); 

      HttpParams httpParams = new BasicHttpParams(); 
      HttpConnectionParams.setConnectionTimeout(httpParams, 30000); 
      HttpClient httpclient = new DefaultHttpClient(httpParams); 
      HttpResponse httpResponse = httpclient.execute(httppost); 

      StatusLine statusLine = httpResponse.getStatusLine(); 
      int statusCode = statusLine.getStatusCode(); 
      System.out.println("status code is" + statusCode); 
      HttpEntity entity = httpResponse.getEntity(); 
      responseString = EntityUtils.toString(entity, "UTF-8"); 
      System.out.println("response string" + responseString); 
      Log.i("RESPONSE XML ------> ", "-----> " + responseString); 
      return responseString; 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return responseString; 
    } 

Пожалуйста, помогите, что я могу сделать, или, если возможно обеспечить эту функцию с помощью классов, которые будут работать на 23. Заранее спасибо

+0

Какую ошибку вы получаете? – Exception

+0

Я просто не могу решить проблему с ошибкой типа. И нет никакой возможности импортировать что-либо, но как только я сменил целевой файл sdk на 4.4.2, он отлично работает. –

+0

Можете ли вы опубликовать трассировку стека? Так что это может быть более ясным. – Talha

ответ

1

Замените код внутри функции с ниже данным кодом, используя HttpURLConnection

import java.io.BufferedReader; 
import java.io.DataOutputStream; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.URL; 

import org.json.JSONException; 
import org.json.JSONObject; 

public class TestJava { 

private String getJSON(String URL, JSONObject obj) throws JSONException { 
    URL url; 
    HttpURLConnection connection = null; 
    try { 
     //Create connection 
     url = new URL(URL); 
     connection = (HttpURLConnection)url.openConnection(); 
     connection.setRequestMethod("POST"); 
     connection.setRequestProperty("Content-Type", 
       "application/json"); 
     connection.setUseCaches (false); 
     connection.setDoInput(true); 
     connection.setDoOutput(true); 
     connection.setConnectTimeout(30000); 
     //Send request 
     DataOutputStream wr = new DataOutputStream (
       connection.getOutputStream()); 
     wr.write(obj.toString().getBytes("UTF-8")); 
     wr.flush(); 
     wr.close(); 

     //Get Response 
     InputStream is = connection.getInputStream(); 
     BufferedReader rd = new BufferedReader(new InputStreamReader(is)); 
     String line; 
     StringBuffer response = new StringBuffer(); 
     while((line = rd.readLine()) != null) { 
      response.append(line); 
      response.append('\r'); 
     } 
     rd.close(); 
     return response.toString(); 

    } catch (Exception e) { 

     e.printStackTrace(); 
     return null; 

    } finally { 

     if(connection != null) { 
      connection.disconnect(); 
     } 
    } 

} 
} 
+0

этот код не работает, я пробовал, и это все еще попав в блок ошибок –

+0

В какой строке вы получаете сообщение об ошибке? – Exception

+0

@raviraghav, добавьте этот оператор импорта, если вы еще не добавили его. 'import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; импорт java.net.HttpURLConnection; import java.net.URL; ' – Exception

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