Java 如何创建具有';内容类型';,授权令牌和主体?

Java 如何创建具有';内容类型';,授权令牌和主体?,java,android,json,android-volley,Java,Android,Json,Android Volley,我正在尝试使用自定义服务器和oauth 2.0创建一个使用身份验证令牌的登录截击post请求。 正文: 我试过这个 @Override public Map<String, String> getHeaders() throws AuthFailureError { final Map<String, String> headers = new HashMap<>(); headers.put("Content-Type", "ap

我正在尝试使用自定义服务器和oauth 2.0创建一个使用身份验证令牌的登录截击post请求。 正文:

我试过这个

@Override
public Map<String, String> getHeaders() throws AuthFailureError {
       final Map<String, String> headers = new HashMap<>();
       headers.put("Content-Type", "application/json");
       headers.put("Authorization", "Bearer .....UzI1NiIsInR5cCI6IkpXVCJ9.....");
       headers.put("email",username.toString());
       headers.put("password",password.toString());
       headers.put("customer",headers.toString());

       Log.e("Json created", headers.toString());
       return headers;
}
@覆盖
公共映射getHeaders()引发AuthFailureError{
最终映射头=新HashMap();
headers.put(“内容类型”、“应用程序/json”);
标题。put(“授权”、“持票人…”UzI1NiIsInR5cCI6IkpXVCJ9…”;
headers.put(“email”,username.toString());
headers.put(“password”,password.toString());
headers.put(“customer”,headers.toString());
Log.e(“Json已创建”,headers.toString());
返回标题;
}

如果希望以JSON正文形式传递数据,请执行此操作

String body = "{\"customer\":{\"email\":"+ username + ",\"password\":"+ password +"}}";

StringRequest stringRequest = new StringRequest(Request.Method.POST, url, response -> {
    //response here
}, error -> {
    //exceptions here
}) {
    @Override
    public byte[] getBody() throws AuthFailureError {
        return body.getBytes();
    }

    @Override
    public HashMap<String, String> getHeaders() throws AuthFailureError {
        final HashMap<String, String> headers = new HashMap<>();
        headers.put("Content-Type", "application/json");
        headers.put("Authorization", "Bearer .....UzI1NiIsInR5cCI6IkpXVCJ9.....");
        return headers;
    }
};
String body=“{\'customer\”:{\'email\”:“+username+”,\“password\”:“+password+”}”;
StringRequest StringRequest=新的StringRequest(Request.Method.POST,url,response->{
//回应这里
},错误->{
//这里的例外情况
}) {
@凌驾
公共字节[]getBody()抛出AuthFailureError{
返回body.getBytes();
}
@凌驾
public HashMap getHeaders()抛出AuthFailureError{
final HashMap headers=new HashMap();
headers.put(“内容类型”、“应用程序/json”);
标题。put(“授权”、“持票人…”UzI1NiIsInR5cCI6IkpXVCJ9…”;
返回标题;
}
};

body必须通过另一个方法getBody()传递。在这里,您所做的,返回值将不符合预期。您能提供任何示例吗?请参阅我的答案。。
String body = "{\"customer\":{\"email\":"+ username + ",\"password\":"+ password +"}}";

StringRequest stringRequest = new StringRequest(Request.Method.POST, url, response -> {
    //response here
}, error -> {
    //exceptions here
}) {
    @Override
    public byte[] getBody() throws AuthFailureError {
        return body.getBytes();
    }

    @Override
    public HashMap<String, String> getHeaders() throws AuthFailureError {
        final HashMap<String, String> headers = new HashMap<>();
        headers.put("Content-Type", "application/json");
        headers.put("Authorization", "Bearer .....UzI1NiIsInR5cCI6IkpXVCJ9.....");
        return headers;
    }
};