使用改造发送POST请求时出错

时间:2017-09-13 05:19:40

标签: android json retrofit

我有一个json数据要在android howerver中使用retrofit发送它不会被发送到服务器。我在服务器端使用了slim框架。

这是我在Android客户端的界面

    public interface RequestInterface 
    {
    @Headers("Content-type: application/json")
    @POST("/instituteRegister")
    Call<InstRegServerResponse> sendInstRegData(@Body InstRegServerRequest 
    post);
    }

这是注册方法

>       public void signup()
        {
        String regdName = _regdName.getText().toString();
        String email = _email.getText().toString();
        String password = _password.getText().toString();
        Log.d("password", password);
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(Constants.BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        RequestInterface requestInterface = 
        retrofit.create(RequestInterface.class);
        InstRegServerRequest instRegServerRequest = new InstRegServerRequest();
        instRegServerRequest.setiname(instituteName);
        instRegServerRequest.setemail(email);
        instRegServerRequest.setpassword(password);
        Call<InstRegServerResponse> response = 
        requestInterface.sendInstRegData(instRegServerRequest);
        response.enqueue(new Callback<InstRegServerResponse>() 
        {
            @Override
        public void onResponse(Call<InstRegServerResponse> call, 
        retrofit2.Response<InstRegServerResponse> response) 
        {
                InstRegServerResponse resp = response.body();
                Log.d("status:", "sign up success");
        }
            @Override
            public void onFailure(Call<InstRegServerResponse> call, Throwable t) 
            {
              Log.d(Constants.TAG,"signed up failed");
            }
        });
        }

错误是JSON数据未传递到服务器 api端点正常工作,因为我使用postman测试了它 在android logcat我得到注册成功,但在服务器端我认为json没有正确传递,这就是为什么我无法将数据写入数据库

1 个答案:

答案 0 :(得分:1)

试试这个。

@Headers("Content-Type: application/json; charset=UTF-8")
@POST("instituteRegister")
Call<InstRegServerResponse> sendInstRegData(@Body Map<String, Object> params);

使用Map<String, Object>构建您的JSON对象。

示例:

Map<String, Object> param = new HashMap<>();
param.put("YOUR_KEY", YOUR_VALUE);