使用Retrofit进行POST

时间:2016-06-16 16:14:01

标签: android retrofit

我正在创建一个简单的登录/注册应用程序,使用预定义的JSON结构数据。到目前为止,我已经创建了GET端点(使用改造)

public interface RetrofitGet {
@GET("----")
Call<User> getUserDetails();

}

编辑:POST endPoint:

@POST("----")
Call<User> postUserDetails();

然后我有一个方法,输入类似JSON的数据并将数据设置为2个字段的文本:

private void getUser() {
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(url)
            .addConverterFactory(GsonConverterFactory.create())
            .build();

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

    Call<User> call = service.getUserDetails();

    call.enqueue(new Callback<User>() {
        @Override
        public void onResponse(Response<User> response, Retrofit retrofit) {

            try {

                input_email.setText(response.body().getEmail());
                input_pass.setText(response.body().getPassword());


            } catch (Exception e) {
                Log.d("onResponse", "There is an error");
                e.printStackTrace();
            }

        }

        @Override
        public void onFailure(Throwable t) {
            Log.d("onFailure", t.toString());
        }


    });

我现在要做的是定义POST端点,以便能够从应用程序生成数据(从注册表中获取),发布在服务器上,然后在登录。

编辑: 该方法到目前为止消耗了POST端点:

private void postUser() {
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(url)
            .addConverterFactory(GsonConverterFactory.create())
            .build();

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


    Call<User> call = service.postUserDetails();

    call.enqueue(new Callback<User>() {
        @Override
        public void onResponse(Response<User> response, Retrofit retrofit) {

            try {
                emailRegister.getText().toString();
                passRegister.getText().toString();


            } catch (Exception e) {
                Log.d("onResponse", "There is an error");
                e.printStackTrace();
            }

        }

所以,我有用户在Register上输入的数据,但是我没有看到它存储在服务器中,也无法在Login部分处理它。

任何帮助将不胜感激, 谢谢!

1 个答案:

答案 0 :(得分:0)

@POST("----")
Call<CommonBean> comment(@Body PostComment comment);

和PostComment:

public class PostComment {
    private int  pcOrdersId;
    private int   pcStar;
    private String pcComment;
     public PostComment(int pcOrdersId, int pcStar, String pcComment) {
        this.pcOrdersId = pcOrdersId;
        this.pcStar = pcStar;
        this.pcComment = pcComment;
    }
}

其他与'GET'不同的人