Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.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
在OkHttp java中创建承载授权头_Java_Okhttp3 - Fatal编程技术网

在OkHttp java中创建承载授权头

在OkHttp java中创建承载授权头,java,okhttp3,Java,Okhttp3,我需要在java中使用OkHttp3作为HTTP客户端,并在请求中发送授权头 例如: 授权:持票人 EYJ0Exhioijkv1qiljHbgJoijiuzi1Nij9.EYJpC3mioIjhodZOv1Gf4AW11BS5DJB20ILCjHdQijOijodhrwczol2F2WyxHbSiiII6Tq0OdzNzZNzYMCWizJ0NdQdGxTzDzMW03MwU1TrJm2ToWq03ZmWy03ZmWyZmWf2Tow03ZmWyZmWyZmWyZmWyZyZyZmWyZmWyZ

我需要在java中使用OkHttp3作为HTTP客户端,并在请求中发送授权头

例如:

授权:持票人 EYJ0Exhioijkv1qiljHbgJoijiuzi1Nij9.EYJpC3mioIjhodZOv1Gf4AW11BS5DJB20ILCjHdQijOijodhrwczol2F2WyxHbSiiII6Tq0OdzNzZNzYMCWizJ0NdQdGxTzDzMW03MwU1TrJm2ToWq03ZmWy03ZmWyZmWf2Tow03ZmWyZmWyZmWyZmWyZyZyZmWyZmWyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZy

如何使用我的用户名和密码创建此令牌? 用户名:test
密码:根据文档进行测试


上面的答案指向正确的路径,但需要一些更改

private  Response requestBuilderWithBearerToken(String userToken) throws IOException {
           OkHttpClient client = new OkHttpClient();
           Request request = new Request.Builder()
                   .url(YourURL)
                   .get()
                   .addHeader("cache-control", "no-cache")
                   .addHeader("Authorization" , "Bearer " + userToken)
                   .build();

           return  client.newCall(request).execute();

对于android Okhttp版本

public Call post(字符串url、字符串json、回调、字符串令牌){
OkHttpClient=新的OkHttpClient();
RequestBody=RequestBody.create(JSON,JSON);
Request Request=newrequest.Builder()
.url(url)
.addHeader(“授权”、“持有人”+令牌)
.职位(机构)
.build();
Call Call=client.newCall(请求);
call.enqueue(回调);
回电;
}

记得在Bearer关键字后面加空格。

感谢上帝,OkHttp3库中有一个名为Credentials的Java类。它根据用户名和密码创建基本授权。如何从用户名和密码创建令牌?请小心。它应该是
.addHeader(“授权”、“承载人”+令牌)
,否则您会得到“IllegalArgumentException:头名称中的意外字符0x20”。此代码对我有效,与标记的答案不同,它会给我“未授权令牌”您好,欢迎使用StackOverflow。作为将来的参考,为了提高您的答案的质量,让其他可能查看它的人可以看到,添加代码注释来解释您的代码在做什么总是好的。
private  Response requestBuilderWithBearerToken(String userToken) throws IOException {
           OkHttpClient client = new OkHttpClient();
           Request request = new Request.Builder()
                   .url(YourURL)
                   .get()
                   .addHeader("cache-control", "no-cache")
                   .addHeader("Authorization" , "Bearer " + userToken)
                   .build();

           return  client.newCall(request).execute();