我有一个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没有正确传递,这就是为什么我无法将数据写入数据库
答案 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);