gpt4 book ai didi

java - 如何在 Android 中使用 Volley 手动设置自定义 cookie 和 header 值?

转载 作者:行者123 更新时间:2023-11-30 01:42:28 27 4
gpt4 key购买 nike

我开始使用 Android Studio,我想制作一个简单的应用程序来从 URL 中获取原始 HTML。我已经使用 http://developer.android.com/training/volley/simple.html 中的基本示例设置了 Volley 来执行此操作,这适用于公共(public) URL。

我要访问的 URL 需要特定的 header 和 cookie,我手头有这些的静态值。如何将这些值分配给我的请求?

public void grabHTML(View view) {
RequestQueue queue = Volley.newRequestQueue(this);
String url = getString(R.string.urlpath);
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
mTextView.setText(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
mTextView.setText(error.getMessage());
}
});
queue.add(stringRequest);
}

编辑:

我能够应用来自 How are cookies passed in the HTTP protocol? 的解决方案手动设置我的请求 header 。

最佳答案

使用解决方案 How are cookies passed in the HTTP protocol?在这里为您的请求手动设置标题。我的代码最终看起来像这样:

package com.pesonal.webrequestexample;

import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.toolbox.StringRequest;

import java.util.HashMap;
import java.util.Map;

public class StringRequestWithCookies extends StringRequest {
private Map<String, String> cookies;

public StringRequestWithCookies(String url, Map<String, String> cookies, Response.Listener<String> listener, Response.ErrorListener errorListener) {
super(Request.Method.GET, url, listener, errorListener);
this.cookies = cookies;
}

@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("header1","value");
headers.put("header2","value");

return headers;
}
}

并在相关 Activity 中...

public void grabHTML(View view) {
String url = getString(R.string.urlpath);
RequestQueue queue = Volley.newRequestQueue(this);
StringRequestWithCookies stringRequest = new StringRequestWithCookies(
url,getCookies(),
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
mTextView.setText(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
mTextView.setText(error.getMessage());
}
});
queue.add(stringRequest);
}

关于java - 如何在 Android 中使用 Volley 手动设置自定义 cookie 和 header 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34272838/

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