【发布时间】:2015-09-09 11:46:02
【问题描述】:
我希望找到一种比我工作的公司教给我的方法更好的方法来处理回复。
我被教导使用通用 HttpClient,它使用 volley 来发送请求。客户端有一个静态方法,该方法将获得一个通用侦听器 ResponseListener,它会在 volley 响应通过时对上下文进行回调。 ResponseListener 将跟踪所有请求“类型”。这是提供给客户端的代码,以便上下文可以区分请求。
有没有其他方法可以跟踪所有请求代码而不必保留一个大目录类型的接口文件?当您收到超过 100 个请求时,看起来会变得非常令人难以抗拒。然后你为客户端中的代码编写包装函数,它也变得乱七八糟。
HttpClient
public static void doRequestString(final ResponseListener listener, final int type, final String url, final JSONObject postData) {
// Request a string response
StringRequest request = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// Result handling
listener.onRequestDone(type, response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// Error handling
System.out.println("Something went wrong!");
error.printStackTrace();
}
});
request.setTag(context);
VolleyClient.getInstance(context).getRequestQueue().add(request);
}
听众
public interface ResponseListener
{
int HELLO_REQUEST = 0;
int GOODBYE_REQUEST = 1;
// every other request numbered here, so they don't conflict
void onRequestDone(int type, String response);
}
上下文
public void onRequestDone(int type, String response)
{
switch(type) {
case Response.Listener.HELLO_REQUEST:
handleHello();
break;
case Response.Listener.GOODBYE_REQUEST:
handleGoodbye();
break;
}
}
【问题讨论】:
标签: java android http callback request