Android:实现可重用的HTTP异步方法

时间:2013-04-23 15:31:03

标签: android post methods android-asynctask code-reuse

我一直在搜索,但是我找不到任何允许发布HTTP post请求的方法的实现,接收URL和数据作为函数的参数。

我的意思是,我发现的所有样本都是针对一组特定的参数量身定制的,我需要的是在AsyncTask方法中获取URL和带有数据的数组,但是如何传递url(字符串)参数和后期数据(数组)参数?

任何帮助或链接都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

我对类似情况使用以下模式:

import java.util.List;
import org.apache.http.NameValuePair;
import android.os.AsyncTask;

public class AsyncHttpPostTask extends AsyncTask<Void, Void, Boolean> {

    private List<NameValuePair> httpPostParams;
    private String postHref;
    private String someOtherValue;

    public AsyncHttpPostTask(final String postHref, final List<NameValuePair> httpPostParams, final String someOtherValue) {
        super();
        this.postHref = postHref;
        this.httpPostParams = httpPostParams;
        this.someOtherValue = someOtherValue;
    }

    @Override
    protected Boolean doInBackground(final Void... params) {
        // Use httpPostParams (or any other values you supplied to a constructor) in your actual Http post here
        // ...
        return true;
    }
}

要使用AsyncTask,请创建一个实例,为构造函数提供必需的参数,并调用execute():

new AsyncHttpPostTask("http://example.com/post", httpPostParams, otherValue).execute();