在OkHttp java中创建承载授权头
我需要在java中使用OkHttp3作为HTTP客户端,并在请求中发送授权头 例如: 授权:持票人 EYJ0Exhioijkv1qiljHbgJoijiuzi1Nij9.EYJpC3mioIjhodZOv1Gf4AW11BS5DJB20ILCjHdQijOijodhrwczol2F2WyxHbSiiII6Tq0OdzNzZNzYMCWizJ0NdQdGxTzDzMW03MwU1TrJm2ToWq03ZmWy03ZmWyZmWf2Tow03ZmWyZmWyZmWyZmWyZyZyZmWyZmWyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZyZy 如何使用我的用户名和密码创建此令牌? 用户名:test在OkHttp java中创建承载授权头,java,okhttp3,Java,Okhttp3,我需要在java中使用OkHttp3作为HTTP客户端,并在请求中发送授权头 例如: 授权:持票人 EYJ0Exhioijkv1qiljHbgJoijiuzi1Nij9.EYJpC3mioIjhodZOv1Gf4AW11BS5DJB20ILCjHdQijOijodhrwczol2F2WyxHbSiiII6Tq0OdzNzZNzYMCWizJ0NdQdGxTzDzMW03MwU1TrJm2ToWq03ZmWy03ZmWyZmWf2Tow03ZmWyZmWyZmWyZmWyZyZyZmWyZmWyZ
密码:根据文档进行测试
上面的答案指向正确的路径,但需要一些更改
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();