При использовании Retrofit2 POST это просто не работает - PullRequest
0 голосов
/ 25 июня 2018
Retrofit rt;
rt=new Retrofit.Builder().baseUrl("http://10.0.2.2/").addConverterFactory(ScalarsConverterFactory.create()).addConverterFactory(GsonConverterFactory.create()).build();


Foo foo=rt.create(Foo.class);

//Map<String,String> mapp=new HashMap<>();
//mapp.put("author","author");
Call<String> msg=foo.postJson("msg");

msg.enqueue(new Callback<String>() {
    @Override
    public void onResponse(Call<String> call, Response<String> response) {

        Log.v("STERLITAMAK", response.body().toString());
    }

    @Override
    public void onFailure(Call<String> call, Throwable t) {
        Log.v("STERLITAMAK", t.toString());

    }
});

Код интерфейса

public interface Foo {

@GET("Singleton")
Call<String> getJson(@Query("weneed") String author);

@POST("Singleton")
@FormUrlEncoded
Call<String> postJson(@Field("weneed") String author);

@FormUrlEncoded
@POST("Singleton")
Call<String> postJson1(@FieldMap Map<String,String> data);
}

PHP-код на сервере

echo $_POST['weneed'];

Дело в том, что когда я запускаю код, сервер просто не видит запрос POST.Но ответ правильный.Если я использую метод интерфейса getJson, он будет работать.Так что проблема, вероятно, не на сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...