AsyncTask Loader Http POST / GET
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AsyncTask Loader Http POST / GET相关的知识,希望对你有一定的参考价值。
我已经意识到,对于配置更改,AsyncTaskLoader
效果更好。但是,这个请求是否也适用于POST
方法。
到目前为止我看到的所有请求只显示GET
请求。示例代码将帮助我了解如何使用POST
和HttpUrlConnection
发送参数并生成AsyncTaskLoader
请求。
答案
请参阅以下AsyncTaskLoader链接。 AsyncTaskLoader basic example. (Android)
您可以使用AsyncTask。请查看以下参考代码。
private class LongOperation extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
URL url = new URL("http://url.com");
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("param1", paramValue1));
params.add(new BasicNameValuePair("param2", paramValue2));
params.add(new BasicNameValuePair("param3", paramValue3));
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(getQuery(params));
writer.flush();
writer.close();
os.close();
conn.connect();
}
private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException
{
StringBuilder result = new StringBuilder();
boolean first = true;
for (NameValuePair pair : params)
{
if (first)
first = false;
else
result.append("&");
result.append(URLEncoder.encode(pair.getName(), "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
}
return result.toString();
}
@Override
protected void onPostExecute(String result) {
if(!TextUtils.isEmpty(result)){
// Do your work
}
}
@Override
protected void onPreExecute() {}
@Override
protected void onProgressUpdate(Void... values) {}
}
以上是关于AsyncTask Loader Http POST / GET的主要内容,如果未能解决你的问题,请参考以下文章