我正在向網(wǎng)站提出請(qǐng)求。但是,我不斷收到返回的 JSON 格式{"error":"invalid_client"}。此外,當(dāng)我導(dǎo)航到我通過(guò)網(wǎng)絡(luò)瀏覽器發(fā)出請(qǐng)求的 URL 時(shí),它會(huì)顯示HTTP ERROR 405.從我讀到的那些錯(cuò)誤可能意味著我的請(qǐng)求結(jié)構(gòu)不正確。根據(jù) API 的文檔,這是我正在嘗試執(zhí)行的請(qǐng)求類型的示例: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();據(jù)我所知,我的應(yīng)該做同樣的事情,只是有點(diǎn)不同。這是我的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();就像我說(shuō)的,我不斷收到返回的 JSON {"error":"invalid_client"},當(dāng)我導(dǎo)航到 URL 時(shí),我正在通過(guò) Web 瀏覽器發(fā)出請(qǐng)求,它顯示HTTP ERROR 405.我很樂(lè)意提供您需要的更多信息。謝謝!編輯1:它的第二個(gè)參數(shù)曾經(jīng)是“bodyBuilder.toString()”,但我改變了它,因?yàn)槲乙庾R(shí)到它實(shí)際上并沒(méi)有發(fā)送正文。結(jié)果還是一樣—— {"error":"invalid_client"}?,F(xiàn)在使用的方法來(lái)自這里。
發(fā)送 okhttp 請(qǐng)求時(shí):HTTP ERROR 405 和 invalid_client
夢(mèng)里花落0921
2022-06-23 09:36:10
