Я столкнулся с другой службой Api, которую я должен запросить с помощью POST, но без содержимого тела, я отправляю изображение, преобразованное в base64, я искал этот вопрос, и я нашел это "решение", которое он не работал:Как сделать POST с пустым телом, используя OKHttp
1:
RequestBody reqbody = RequestBody.create(null, new byte[0]);
Request.Builder formBody = new Request.Builder().url(url).method("POST",reqbody).header("Content-Length", "0");
2:
request = new Request.Builder()
.url(BASE_URL + route)
.method("POST", RequestBody.create(null, new byte[0]))
.post(requestBody)
.build();
даже я явное высказывание, что это метод POST, его продолжает отправлять запрос GET и нет t запрос POST. Благодаря!
Моя активность:
public String SendImage(String image64) throws IOException{
//RequestBody reqbody = RequestBody.create(null, new byte[0]);
Request request = new Request.Builder()
.url("http://ap.imagensbrasil.org/api/1/upload/?key=9c9dfe77cd3bdbaa7220c6bbaf7452e7&source=" + image64 + "&format=txt")
.method("POST", RequestBody.create(null, new byte[0]))
.header("Content-Length", "0")
.build();
OkHttpClient Client = client.newBuilder() .readTimeout(25, TimeUnit.SECONDS).build();
Response response = Client.newCall(request).execute();
return response.body().string();
}
Но где я поставил URL? У этого API нет контента для отправки, у меня даже нет строки тела, все внутри URL. Посмотрите мое обновление –
Попробуйте этот код. – Rohit
метод .post ("") не принимает строку, поэтому я сделал: RequestBody body = RequestBody.create (JSON, ""); и затем .post (тело). не работает –