Используя некоторый Log.d, который я проверил, он имеет неправильный формат и что сервер запрашивает тело приложения/json, но мне кажется, что я все делаю правильно. Я включил эту опцию
Код: Выделить всё
android:usesCleartextTraffic="true"
Я также попробовал метод enqueue() вместо метода выполнения() для асинхронного метода почтового запроса, но это не помогло В любом случае это не работает, я не понимаю, почему я должен отправлять свой запрос синхронно, поскольку мне это не нужно, поэтому я переключился обратно
Вот код
Код: Выделить всё
JSONObject jsonObject = new JSONObject();
jsonObject.put("user", "IP-Alby");
jsonObject.put("password", "blabla");
RequestBody requestBody = RequestBody.create(
jsonObject.toString(),
MediaType.parse("application/json; charset=utf-8")
);
Log.d("NetworkRequest", "request created");
Request postRequest = new Request.Builder().url("http://x.x.x.x:25565/api/register").post(requestBody).build();
Response response = client.newCall(postRequest).execute();
int statusCode = response.code();
Log.d("NetworkRequest", "status code: "+statusCode);
String responseBody = response.body().string();
Log.d("NetworkRequest", "Response Body: " + responseBody);
if (response.isSuccessful()) {
Log.d("NetworkRequest", "POST was correct");
String responseBody2 = response.body().string();
Log.d("NetworkRequest", responseBody2);
}
if (!response.isSuccessful()) {
Log.e("NetworkRequest", "something went wrong");
}
Код: Выделить всё
D request created
D status code: 400
D Response Body: Expected application/json content type
E something went wrong
Я бы не стал рассматривать опечатку в URL, потому что я уже тестировал ее другим способом, и это сработало, просто в этом приложении у меня болит голова.
Поможете? Содержимое тела отформатировано правильно, верно?
Подробнее здесь: https://stackoverflow.com/questions/789 ... -json-body
Мобильная версия