springboot项目调用github API做登录,通过有token
在我点击登录的时候,拿到了github返回的token,但是没有拿到user值。服务器给我返回了这个错误页面
当我走断点的时候发现这里面根本就没有值,所有服务器报错了。但是我token是拿到了的
// 请把代码文本粘贴到下方(请勿用图片代替代码)
//获取access_token post请求
public String getAccessToken(AccessTokenDto accessTokenDto){ //获取json格式的数据
MediaType mediaType = MediaType.get("application/json; charset=utf-8");
//okhttp做网络请求
OkHttpClient client = new OkHttpClient();
//响应体
RequestBody body = RequestBody.create(mediaType,JSON.toJSONString(accessTokenDto));
Request request = new Request.Builder()
.url("https://github.com/login/oauth/access_token")
.post(body)
.build();
try (Response response = client.newCall(request).execute()) {
String string = response.body().string();
String token = string.split("&")[0].split("=")[1];
return token;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//获取user get请求
public GithubUser getUser(String accessToken){
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://api.github.com/user?access_token="+accessToken)
.build();
try {
Response response = client.newCall(request).execute();
String string = response.body().string();
GithubUser githubUser = JSON.parseObject(string, GithubUser.class);
return githubUser;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
点击登录响应登录成功。
报错信息~~~~
m.m.a.ExceptionHandlerExceptionResolver : Resolved [com.alibaba.fastjson.JSONException: syntax error, expect {, actual error, pos 0, fastjson-version 1.2.57]
为什么会显示这个错误页面,是因为我拿到token之后,通过token去拿我的user并没有拿到此时的user应该是以json格式的数据返回来的,但是拿到的是一段错误的字符串也就是图中所显示的错误内容,所以json解析出错,登录不成功。我想知道的是当我拿到token的时候,我再通过token去拿user为什么会拿不到?
有些地方需要补充的,请大家尽管提!
希望能得到你们的帮助,我被这个问题给困住了
回答:
我也是这个问题,真不知道怎么解决
以上是 springboot项目调用github API做登录,通过有token 的全部内容, 来源链接: utcz.com/a/167021.html