参见英文答案 >
Apache HTTP connection with Android 6.0 (Marshmallow)2
我升级到最新的sdk版本23.现在我的一些代码不再工作了.
这是我以前得到json的类:
我升级到最新的sdk版本23.现在我的一些代码不再工作了.
这是我以前得到json的类:
public class Spots_tab1_json { static String response = null; public final static int GET = 1; public final static int POST = 2; public Spots_tab1_json() { } public String makeServiceCall(String url,int method) { return this.makeServiceCall(url,method,null); } public String makeServiceCall(String url,int method,List<NameValuePair> params) { try { DefaultHttpClient httpClient = new DefaultHttpClient(); HttpEntity httpEntity = null; HttpResponse httpResponse = null; if (method == POST) { HttpPost httpPost = new HttpPost(url); httpPost.addHeader("Cache-Control","no-cache"); if (params != null) { httpPost.setEntity(new UrlEncodedFormEntity(params,"UTF-8")); } httpResponse = httpClient.execute(httpPost); } else if (method == GET) { if (params != null) { String paramString = URLEncodedUtils.format(params,"UTF-8"); url += "?" + paramString; } HttpGet httpGet = new HttpGet(url); httpGet.addHeader("Cache-Control","no-cache"); httpResponse = httpClient.execute(httpGet); } httpEntity = httpResponse.getEntity(); response = EntityUtils.toString(httpEntity); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return response; }
}
有没有替换?如果是,应该替换什么?
谢谢
解决方法
作为解决方法,将其添加到您的应用程序build.gradle中
android { useLibrary 'org.apache.http.legacy' }
https://developer.android.com/preview/behavior-changes.html#behavior-apache-http-client