我正在使用带有回调接口的凌空。我发送邮件请求到服务器和服务器响应302状态代码。如何将响应头中的位置设置为变量字符串类型?然后我想用这个位置开始全屏webview的新活动。
这个代码在齐射类中发送请求:
public StringPostRequest(Context context, String url, Map<String, String> params) {
this.params = params;
this.url = url;
mQueue = Volley.newRequestQueue(context, new NukeSSLCerts());
}
public void getString(final VolleyCallback callback) {
StringRequest stringRequest = new StringRequest(Request.Method.POST, url ,
new Response.Listener<String>(){
@Override
public void onResponse(String response) {
req = response;
callback.onSuccess(req);
}
}
,new Response.ErrorListener(){
@Override
public void onErrorResponse(final VolleyError error){
final int status = error.networkResponse.statusCode;
// Handle 30x
if(HttpURLConnection.HTTP_MOVED_PERM == status || status == HttpURLConnection.HTTP_MOVED_TEMP || status == HttpURLConnection.HTTP_SEE_OTHER) {
final String location = error.networkResponse.headers.get("Location");
callback.onSuccess(location);
}
}
})
{
@Override
protected Map<String, String> getParams() throws AuthFailureError {
return params;
}
};
mQueue.add(stringRequest);
}
public interface VolleyCallback{
void onSuccess(String req);
}
在主要活动中,我正在为帖子请求创建地图。
Map<String,String> params = new HashMap<>();
params.put("foo", "bar");
params.put("foo1", "bar1");
params.put("foo2", "bar2");
StringPostRequest getRedirectUrl = new StringPostRequest(this,url,params);
getRedirectUrl .getString(new StringPostRequest.VolleyCallback() {
@Override
public void onSuccess(String req) {
Log.d("reqInMainact", req);
RedirectUrl[0] = req;
}
});
return RedirectUrl[0];
但是响应头中的位置没有写入RedirectUrl [0](( 请帮帮我
答案 0 :(得分:0)
但是响应头中的位置没有写入RedirectUrl [0]
我确定它确实如此,但是您编写了异步代码,就好像它是同步的一样。
制作return RedirectUrl[0];
为void
的任何方法,并尝试此
StringPostRequest getRedirectUrl = new StringPostRequest(this,url,params);
getRedirectUrl.getString(new StringPostRequest.VolleyCallback() {
@Override
public void onSuccess(String req) {
Log.d("reqInMainact", req);
Intent i = new Intent(CurrentActivity.this, NewActivity.class);
i.putExtra("URL",req);
startActivity(i);
}
});
然后我想用这个位置开始全屏webview的新活动
更多详情:
How do I pass data between Activities in Android application?
答案 1 :(得分:-1)
我很容易)))我用旧网址启动webview并在WebView中获取重定向感谢所有对不起