作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试使用参数发出一些 http 请求。目前我正在使用
private List<NameValuePair> mParams = new ArrayList<NameValuePair>();
private DefaultHttpClient mHttpClient;
private HttpPost mHttpPost;
这些用于发出 http 请求并且工作正常。但问题是 android studio 正在向所有人显示已弃用的警告 这些 3 。我尝试使用HttpClientBuilder.create().build();
但 android studio 无法导入 HttpClientBuilder
的库 我尝试下载并添加 this jar dependency但仍然不起作用。这是我的代码
mHttpClient = new DefaultHttpClient();
mHttpPost = new HttpPost(url);
mParams.add(new BasicNameValuePair("key", value));
mHttpPost.setEntity(new UrlEncodedFormEntity(mParams));
所有这些行都显示弃用警告,这是替代方法吗?
最佳答案
您可以使用 HttpsURLConnection
而不是 DefaultHttpClient
。此外,NameValuePair
已弃用,请使用 Uri.Builder
和 appendQueryParameter
发送请求参数。
尝试以下代码:
URL url = new URL("http://myurl.com");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setReadTimeout(10000);
connection.setConnectTimeout(15000);
connection.setRequestMethod("POST");
connection.setDoInput(true);
connection.setDoOutput(true);
Uri.Builder builder = new Uri.Builder()
.appendQueryParameter("key1", valu1)
.appendQueryParameter("key2", value2);
String query = builder.build().getEncodedQuery();
OutputStream os = connection.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(query);
writer.flush();
writer.close();
os.close();
connection.connect();
关于android - android studio 中的 Http 方法已弃用警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31801255/
我是一名优秀的程序员,十分优秀!