Мне нужно выполнить запрос с модификацией, но у меня есть проблема, которую я не очень хорошо понимаю. Прежде чем пытаться с кодом, я проверил вызов API с Почтальоном и запрос выглядит так:
Вот мой код Android:
public class API {
private static <T> T builder(Class<T> endpoint) {
return new Retrofit.Builder()
.baseUrl(Utils.API_BASE_URL)
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(endpoint);
}
public static AllRequests request() {
return builder(AllRequests.class);
}
}
РЕДАКТИРОВАТЬ запрос:
@POST("api/android-feedback")
@Headers({"Content-Type: application/x-www-form-urlencoded", "Authorization: F#@3FA@#Rad!@%!2s"})
Call<String> sendFeedback(@Body FeedbackBody body);
FeedbackBody:
public class FeedbackBody{
private final String email;
private final String feedback;
public FeedbackBody(String email, String feedback){
this.email = email;
this.feedback = feedback;
}
}
И, наконец, я создаю запрос и жду ответа, проблема в том, что я получаю сообщение в методе onFail
private void sendFeedbackRequest(){
API.request().sendFeedback(new FeedbackBody("testmeil@meil.com", "test feedback").enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
goToMainActivity();
}
@Override
public void onFailure(Call<String> call, Throwable t) {
Toast.makeText(SplashScreenActivity.this, R.string.try_again_later, Toast.LENGTH_SHORT).show();
}
});
EDIT:
Все еще не работает .. Я думаю, что я выяснил, где может быть проблема, потому что на стороне сервера ждут простой запрос POST без форматирования Json, я думаю, что Retrofit использует форматирование JSON по умолчанию, и если я отправляю запрос POST и форматирую параметры тела с помощью JSON сервер не сможет проанализировать мой запрос, есть ли возможность отправить простой запрос POST, как на POSTMAN, без форматирования с помощью JSON?
- Php api Ждет запроса на отправку следующим образом:
$ _ POST ['feedback'] = 'blabla';
$ _POST ['email'] = 'blabla ..';
и, если он получает запрос в формате Json, не может его проанализировать, из-за этого я получаю ответ об ошибке.