У меня есть базовый завиток, как показано ниже:
curl -X POST \
'https://aogt.pl/auth/' \
-H 'Authorization: Basic NGZjMjExNWQyYTZk' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'client_id=4fc2115'
Когда я запускаю его в консоли, например, на Ubuntu, все работает правильно, я получаю хороший ответ.Теперь я хотел бы отобразить этот curl в код Java с помощью okhttp.Я пишу ниже код:
public class TestMain {
private static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
public static void main(String[] args) throws IOException {
String data = "client_id=4fc2115";
RequestBody body = RequestBody.create(JSON, data);
Request request = new Request.Builder()
.url("https://aogt.pl/auth/")
.addHeader("Authorization", "Basic NGZjMjExNWQyYTZk")
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.post(body)
.build();
OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
}
}
Файл POM выглядит следующим образом:
<dependencies>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.2.0</version>
</dependency>
</dependencies>
Проблема в том, что когда я запускаю этот код, я получаю «400 Bad Request», так что это проблема ссервер.Я неправильно карту выше свернуться в код Java в http.Возможно, проблема в теле POST, потому что это не JSON, но что мне нужно изменить здесь, не могли бы вы сказать, что не так?Большое спасибо.