Я использую модификацию Android для отправки запроса на мой сервер laravel.Я сталкиваюсь с тем, что могу получить тело запроса на стороне сервера, но ответа нет (метод onResponse не запускается).Интерфейс API:
package com.example.asus.retrofit;
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface Api {
String BASE_URL="http://405d6d4f.ngrok.io/";
@POST("execute")
@FormUrlEncoded
Call<ServerJsonObject> sendData(@Field("name") String name);
}
мой класс ServerJsonObject:
public class ServerJsonObject {
private String name;
private int age;
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
MainActivity:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Api.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
Api api = retrofit.create(Api.class);
Call<ServerJsonObject> call = api.sendData("Mathew");
call.enqueue(new Callback<ServerJsonObject>() {
@Override
public void onResponse(Call<ServerJsonObject> call, Response<ServerJsonObject> response) {
ServerJsonObject x = response.body(); // it doesn't enter here when debugging
Log.d("data",Integer.toString(x.getAge()));
}
@Override
public void onFailure(Call<ServerJsonObject> call, Throwable t) {
}
});
}
}
ответ, который возвращает мой сервер:
{"name": "Mathew", "age": 22}
Я вижу тело запроса на стороне сервера, оно выглядит следующим образом:
name =Мэтью