gpt4 book ai didi

android - 重新连接互联网截击后从服务器获得响应

转载 作者:行者123 更新时间:2023-11-29 18:32:31 25 4
gpt4 key购买 nike

当我点击 URL 以使用 volley 从服务器获取响应时,在获取过程中网络断开了。

我的问题是如何在重新连接互联网连接后从服务器获取数据,而无需再次点击 url

 private void PostRequest(String Url) {

mRequest = new ServiceRequest(HomeActivity.this);
mRequest.makeServiceRequest(Url, Request.Method.GET, null, new ServiceRequest.ServiceListener() {
@Override
public void onCompleteListener(String response) {

Log.d("reponse", response);

JSONObject object = new JSONObject(response);

}


@Override
public void onErrorListener() {
indicator.setVisibility(View.GONE);
}
});



public void makeServiceRequest(final String url, int method, final
HashMap<String, String> param,ServiceListener listener) {

this.mServiceListener=listener;

stringRequest = new StringRequest(method, url, new Response.Listener<String>
() {
@Override
public void onResponse(String response) {
try {
mServiceListener.onCompleteListener(response);

} catch (Exception e) {
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
try {
if (error instanceof TimeoutError || error instanceof
NoConnectionError) {
} else if (error instanceof AuthFailureError) {
} else if (error instanceof ServerError) {
} else if (error instanceof NetworkError) {
} else if (error instanceof ParseError) {
}
} catch (Exception e) {
}

mServiceListener.onErrorListener();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
return param;
}

@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<String, String>();
return headers;
}
};

//to avoid repeat request Multiple Time
DefaultRetryPolicy retryPolicy = new DefaultRetryPolicy(0, -1,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
stringRequest.setRetryPolicy(retryPolicy);
stringRequest.setRetryPolicy(new DefaultRetryPolicy(30000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
stringRequest.setShouldCache(false);
AppController.getInstance().addToRequestQueue(stringRequest);
}
}

请给出建议,在点击 url 之前我检查了互联网连接

最佳答案

您可以做一件事,创建失败请求的集合。注册 CONNECTIVITY_CHANGE 和 WIFI_STATE_CHANGED 的广播接收器,以便在互联网连接可用时收到通知。一旦您的设备连接到互联网,您将在已注册的广播接收器中收到通知,然后发送重试您收藏中的所有请求。请求成功后,从集合中删除请求。

关于android - 重新连接互联网截击后从服务器获得响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55632064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com