Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android中使用Volley手动设置自定义cookie和标头值?_Java_Android_Cookies_Header_Android Volley - Fatal编程技术网

Java 如何在Android中使用Volley手动设置自定义cookie和标头值?

Java 如何在Android中使用Volley手动设置自定义cookie和标头值?,java,android,cookies,header,android-volley,Java,Android,Cookies,Header,Android Volley,我开始使用Android Studio,我想制作一个简单的应用程序,从URL获取原始HTML。我已经使用的基本示例设置了截击来实现这一点,该示例适用于公共URL 我想要访问的URL需要特定的标题和cookie,我手头上有静态值。如何将这些值分配给我的请求 public void grabHTML(View view) { RequestQueue queue = Volley.newRequestQueue(this); String url = getString(R.stri

我开始使用Android Studio,我想制作一个简单的应用程序,从URL获取原始HTML。我已经使用的基本示例设置了截击来实现这一点,该示例适用于公共URL

我想要访问的URL需要特定的标题和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);
}
public-void-grabHTML(视图){
RequestQueue=Volley.newRequestQueue(this);
stringurl=getString(R.String.urlpath);
StringRequest StringRequest=新的StringRequest(Request.Method.GET,url,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
mTextView.setText(响应);
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
mTextView.setText(error.getMessage());
}
});
添加(stringRequest);
}
编辑:

我可以从应用解决方案手动设置我的请求标题。

使用此处的解决方案手动设置请求标题。我的代码最终如下所示:

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;
    }
}
package com.pesonal.webrequestexample;
导入com.android.volley.AuthFailureError;
导入com.android.volley.Request;
导入com.android.volley.Response;
导入com.android.volley.toolbox.StringRequest;
导入java.util.HashMap;
导入java.util.Map;
公共类StringRequestWithCookies扩展StringRequest{
私人地图cookies;
public StringRequestWithCookie(字符串url、映射Cookie、Response.Listener、Response.ErrorListener ErrorListener){
super(Request.Method.GET、url、侦听器、errorListener);
this.cookies=cookies;
}
@凌驾
公共映射getHeaders()引发AuthFailureError{
HashMap headers=新的HashMap();
页眉。看跌期权(“页眉1”、“价值”);
标题。put(“标题2”、“值”);
返回标题;
}
}
在相关活动中

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);
    }
public-void-grabHTML(视图){
stringurl=getString(R.String.urlpath);
RequestQueue=Volley.newRequestQueue(this);
StringRequestWithCookies stringRequest=新建StringRequestWithCookies(
url,getCookies(),
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
mTextView.setText(响应);
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
mTextView.setText(error.getMessage());
}
});
添加(stringRequest);
}