Java 截击传递URL
并且多次使用相同的StringRequest,但使用不同的URL 另外,这里是我的AppCore.java:Java 截击传递URL,java,android,jsoup,android-volley,Java,Android,Jsoup,Android Volley,并且多次使用相同的StringRequest,但使用不同的URL 另外,这里是我的AppCore.java: AppCore.getInstance("http://example.com/").addToRequestQueue(strReq); package app.android.volley; 导入android.app.Application; 导入android.text.TextUtils; 导入com.android.volley.Request; 导入com.android
AppCore.getInstance("http://example.com/").addToRequestQueue(strReq);
package app.android.volley;
导入android.app.Application;
导入android.text.TextUtils;
导入com.android.volley.Request;
导入com.android.volley.RequestQueue;
导入com.android.volley.toolbox.ImageLoader;
导入com.android.volley.toolbox.volley;
公共类AppCore扩展了应用程序{
公共静态最终字符串标记=AppCore.class
.getSimpleName();
私有请求队列mRequestQueue;
私有静态应用程序;
@凌驾
public void onCreate(){
super.onCreate();
mInstance=这个;
}
公共静态同步AppCore getInstance(){
回报率;
}
公共请求队列getRequestQueue(){
if(mRequestQueue==null){
mRequestQueue=Volley.newRequestQueue(getApplicationContext());
}
返回mrequest队列;
}
公共无效addToRequestQueue(请求请求,字符串标记){
//如果标记为空,则设置默认标记
请求setTag(TextUtils.isEmpty(tag)?tag:tag;
getRequestQueue().add(请求);
}
公共无效addToRequestQueue(请求请求){
要求设置标签(标签);
getRequestQueue().add(请求);
}
公共作废取消挂起请求(对象标记){
if(mRequestQueue!=null){
mRequestQueue.cancelAll(标记);
}
}
}
基本上,我尝试多次使用一个StringRequest,但使用不同的URL。
提前感谢。您可以尝试以下方法(当然,您可以用
JSONObject
请求或String
请求替换JSONArray
请求):
makeJsonArrayRequest的主体可以如下所示:
VolleyResponseListener listener = new VolleyResponseListener() {
@Override
public void onError(String message) {
// do something...
}
@Override
public void onResponse(Object response) {
// do something...
}
};
makeJsonArrayRequest(context, Request.Method.POST, url, requestBody, listener);
public void makeJsonArrayRequest(Context context, int method, String url, String requestBody, final VolleyResponseListener listener) {
JSONObject jsonRequest = null;
try {
...
if (requestBody != null) {
jsonRequest = new JSONObject(requestBody);
}
...
} catch (JSONException e) {
e.printStackTrace();
}
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(method, url, jsonRequest, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray jsonArray) {
listener.onResponse(jsonArray);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
listener.onError(error.toString());
}
});
// Access the RequestQueue through singleton class.
MySingleton.getInstance(context).addToRequestQueue(jsonArrayRequest);
}
您可以尝试以下方法(当然,您可以用JSONObject
request或String
request替换JSONArray
request):
makeJsonArrayRequest的主体可以如下所示:
VolleyResponseListener listener = new VolleyResponseListener() {
@Override
public void onError(String message) {
// do something...
}
@Override
public void onResponse(Object response) {
// do something...
}
};
makeJsonArrayRequest(context, Request.Method.POST, url, requestBody, listener);
public void makeJsonArrayRequest(Context context, int method, String url, String requestBody, final VolleyResponseListener listener) {
JSONObject jsonRequest = null;
try {
...
if (requestBody != null) {
jsonRequest = new JSONObject(requestBody);
}
...
} catch (JSONException e) {
e.printStackTrace();
}
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(method, url, jsonRequest, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray jsonArray) {
listener.onResponse(jsonArray);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
listener.onError(error.toString());
}
});
// Access the RequestQueue through singleton class.
MySingleton.getInstance(context).addToRequestQueue(jsonArrayRequest);
}
public interface VolleyResponseListener {
void onError(String message);
void onResponse(Object response);
}