为了账号安全,请及时绑定邮箱和手机立即绑定

发送 okhttp 请求时:HTTP ERROR 405 和 invalid_client

发送 okhttp 请求时:HTTP ERROR 405 和 invalid_client

梦里花落0921 2022-06-23 09:36:10
我正在向网站提出请求。但是,我不断收到返回的 JSON 格式{"error":"invalid_client"}。此外,当我导航到我通过网络浏览器发出请求的 URL 时,它会显示HTTP ERROR 405.从我读到的那些错误可能意味着我的请求结构不正确。根据 API 的文档,这是我正在尝试执行的请求类型的示例:OkHttpClient client = new OkHttpClient();MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");RequestBody body = RequestBody.create(mediaType, "client_secret={your_client_secret}&client_id={your_client_id}&code={your_authorization_code}&grant_type=authorization_code&redirect_uri={your_redirect_uri}");Request request = new Request.Builder()  .url("https://api.website.com/v2/oauth2/token")  .post(body)  .addHeader("content-type", "application/x-www-form-urlencoded")  .addHeader("cache-control", "no-cache")  .build();Response response = client.newCall(request).execute();据我所知,我的应该做同样的事情,只是有点不同。这是我的doInBackground方法的 Pastebin(我正在使用 AsynchTask)。这是更适用的部分:OkHttpClient client = new OkHttpClient();// A section here gets strings from a JSON file storing values such as client_id RequestBody bodyBuilder = new FormBody.Builder()  .add("client_secret", CLIENT_SECRET)  .add("client_id", CLIENT_ID)  .add("code", AUTHORIZATION_CODE)  .add("grant_type", GRANT_TYPE)  .add("redirect_uri", REDIRECT_URI)  .build(); System.out.println("Built body: " + bodyBuilder.toString()); String mediaTypeString = "application/x-www-form-urlencoded"; MediaType mediaType = MediaType.parse(mediaTypeString); RequestBody body = RequestBody.create(mediaType, requestbodyToString(bodyBuilder)); // See Edit 1 Request request = new Request.Builder()  .url(TARGET_URL)  .post(body)  .addHeader("content-type", mediaTypeString)  .addHeader("cache-control", "no-cache")  .build();就像我说的,我不断收到返回的 JSON {"error":"invalid_client"},当我导航到 URL 时,我正在通过 Web 浏览器发出请求,它显示HTTP ERROR 405.我很乐意提供您需要的更多信息。谢谢!编辑1:它的第二个参数曾经是“bodyBuilder.toString()”,但我改变了它,因为我意识到它实际上并没有发送正文。结果还是一样—— {"error":"invalid_client"}。现在使用的方法来自这里。
查看完整描述

1 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

我弄清楚它是什么——我实际上并没有将它写入authentication_code文件,只是将它添加到另一个 JSONObject 中。哎呀。:)



查看完整回答
反对 回复 2022-06-23
  • 1 回答
  • 0 关注
  • 368 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信