Refinement of request with parameters

I am using postman extension to send a request. I want to make the same request with Android. I used a modified library to access my target. But I cannot succeed. Where is my code error?

Postman: enter image description here

My interface:

public interface Interfacem {

    @FormUrlEncoded
    @POST("/login")
    Call<ResponseBody> getResponse(@Field("signin[username]") String username,@Field("signin[password]")String password );
}

and retrofitting:

Retrofit retrofit = new Retrofit.Builder()
                        .baseUrl("http://myurl.com")
                        .build();

                Interfacem service = retrofit.create(Interfacem.class);
                Call<ResponseBody> result =service.getResponse("myUsername","myPassword");
                result.enqueue(new Callback<ResponseBody>() {
                    @Override
                    public void onResponse(Response<ResponseBody> response) {
                        try {
                            System.out.println(response.body().string().toString());
                        } catch (IOException|NullPointerException e) {
                            e.printStackTrace();
                        }

                    }

                    @Override
                    public void onFailure(Throwable t) {
                        t.printStackTrace();
                    }
                });
0
source share
3 answers

Try this to provide the body

public class SignBody {
  @SerializedName("signin[username]") @Expose private String username;
  @SerializedName("signin[password]") @Expose private String password;
}

change interface to

@POST("/login")
    Call<ResponseBody> getResponse(@Body SignBody body);
+1
source

if you are using Retrofit 2.x, try changing your version of the Retrofit object as shown below:

Retrofit retrofit = new Retrofit.Builder()
                        .baseUrl("http://myurl.com/")
                        .build();

perhaps below will help

/ URL- API. / url url .

:

API

    public interface UserService {  
    @POST("/me")
    Call<User> me();}

Retrofit baseUrl

    Retrofit retrofit = Retrofit.Builder()  
    .baseUrl("https://your.api.url/v2");
    .build();

:

UserService service = retrofit.create(UserService.class);

Url https://your.api.url/me (/v2 )

URL- URL- url /.

public interface UserService {  
    @POST("me")
    Call<User>me();
}

URL

Retrofit retrofit = Retrofit.Builder()  
    .baseUrl("https://your.api.url/v2/");
    .build();

UserService service = retrofit.create(UserService.class);

URL- https://your.api.url/v2/me

+1

? 2.0. - , , . URL-, . .

public interface Interfacem {

    @FormUrlEncoded
    @POST("login")
    Call<ResponseBody> getResponse(@Field("username") String username,@Field("password")String password );
}


Retrofit retrofit = new Retrofit.Builder()
                        .baseUrl("http://myurl.com/")
                        .build();

                Interfacem service = retrofit.create(Interfacem.class);
                Call<ResponseBody> result =service.getResponse("myUsername","myPassword");
                result.enqueue(new Callback<ResponseBody>() {
                    @Override
                    public void onResponse(Response<ResponseBody> response) {
                        try {
                            System.out.println(response.body().string().toString());
                        } catch (IOException|NullPointerException e) {
                            e.printStackTrace();
                        }

                    }

                    @Override
                    public void onFailure(Throwable t) {
                        t.printStackTrace();
                    }
                });
0

Source: https://habr.com/ru/post/1694861/


All Articles