在java中传入原始JSON体的改造中的POST请求问题
我试图传入这个原始JSON主体,它抛出了一个POST请求端点,该端点创建了一个新用户:在java中传入原始JSON体的改造中的POST请求问题,java,json,android-studio,retrofit,Java,Json,Android Studio,Retrofit,我试图传入这个原始JSON主体,它抛出了一个POST请求端点,该端点创建了一个新用户: { "testId": 6, "name": "Jpe Smith", "buttonsCorrect": 10, "buttonsIncorrect": 2, "startSession": 1243242, &quo
{
"testId": 6,
"name": "Jpe Smith",
"buttonsCorrect": 10,
"buttonsIncorrect": 2,
"startSession": 1243242,
"endSession": 4234123,
"totalTime": 1343432,
"userConsent": true,
"feedback": [{
"uiVariant1": 3,
"uiVariant2": 5,
"uiVariant3": 5,
"uiVariant4": 3,
"uiVariant5": 4,
"uiVariant6": 6
}]
}
这是我当前用于改装的API模型:
public interface TestClient {
@Headers("Content-Type: application/json")
@POST("v1/todos")
Call<User> createUser(@Body User user);
}
下面是处理请求并创建要发送的数据的活动
submit.setOnClickListener(v -> {
String netScore = String.valueOf(nps.getRating());
String customerScore = String.valueOf(css.getRating());
showToast("Net score " + netScore);
showToast("Customer score " + customerScore);
// Store additional feedback here
Log.e("Additional User Feedback", additionalFeedback.getText().toString());
// preparing the data before creating JSON file.
String testId = (String) StartScreen.userDataBundle.get("testId");
Log.e("testId", testId);
long sessionStart = StartScreen.userDataBundle.getLong("sessionStart");
Log.e("sessionStart", String.valueOf(sessionStart));
String name = StartScreen.userDataBundle.getString("name");
Log.e("name", name);
long sessionEnd = Instant.now().getEpochSecond();
Log.e("sessionEnd", String.valueOf(sessionEnd));
int totalTime = 000000;
String userConsent = "true";
int buttonsCorrect = 10;
int buttonsIncorrect = 2;
JSONArray feedback = new JSONArray();
JSONObject feedbackScores = new JSONObject();
try {
feedbackScores.put("Net Score", netScore);
} catch (JSONException e) {
e.printStackTrace();
}
try {
feedbackScores.put("Customer Score", customerScore);
} catch (JSONException e) {
e.printStackTrace();
}
feedback.put(feedbackScores);
feedback.put(feedbackScores);
User user = new User(
"1",
"jeff",
0,
0,
000000,
0000000,
000000,
"true",
feedback
);
sendNetworkRequest(user);
});
additionalFeedback.addTextChangedListener(submitTextWatcher);
}
private void sendNetworkRequest(User user) {
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl("endpointURL")
.addConverterFactory(GsonConverterFactory.create());
Retrofit retrofit = builder.build();
TestClient client = retrofit.create(TestClient.class);
Call<User> call = client.createUser(user);
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
//Toast.makeText(UserSurveyActivity.this, "Success!" + response.body().getTestId(), Toast.LENGTH_SHORT).show();
Toast.makeText(UserSurveyActivity.this, "Success!" + response.body(), Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<User> call, Throwable t) {
Toast.makeText(UserSurveyActivity.this, "Something went wrong!", Toast.LENGTH_SHORT).show();
t.getCause();
t.printStackTrace();
}
});
}
submit.setOnClickListener(v->{
String netScore=String.valueOf(nps.getRating());
String customerScore=String.valueOf(css.getRating());
showtoos(“净分数”+netScore);
showToast(“客户分数”+客户核心);
//在此处存储其他反馈
Log.e(“附加用户反馈”,additionalFeedback.getText().toString());
//在创建JSON文件之前准备数据。
String testId=(String)StartScreen.userDataBundle.get(“testId”);
Log.e(“testId”,testId);
long sessionStart=StartScreen.userDataBundle.getLong(“sessionStart”);
Log.e(“sessionStart”,String.valueOf(sessionStart));
String name=StartScreen.userDataBundle.getString(“名称”);
Log.e(“名称”,名称);
long sessionEnd=Instant.now().getepochsond();
Log.e(“sessionEnd”,String.valueOf(sessionEnd));
int totalTime=000000;
字符串userapprovement=“true”;
int buttonsCorrect=10;
int按钮不正确=2;
JSONArray feedback=新的JSONArray();
JSONObject FeedbackCores=新的JSONObject();
试一试{
反馈分数。输入(“净分数”,netScore);
}捕获(JSONException e){
e、 printStackTrace();
}
试一试{
反馈分数。输入(“客户分数”,customerScore);
}捕获(JSONException e){
e、 printStackTrace();
}
反馈。输入(反馈核心);
反馈。输入(反馈核心);
用户=新用户(
"1",
“杰夫”,
0,
0,
000000,
0000000,
000000,
“真的”,
反馈
);
发送网络请求(用户);
});
additionalFeedback.addTextChangedListener(submitTextWatcher);
}
专用void sendNetworkRequest(用户){
reformation.Builder=新的reformation.Builder()
.baseUrl(“端点URL”)
.addConverterFactory(GsonConverterFactory.create());
改装改装=builder.build();
TestClient=reformation.create(TestClient.class);
Call Call=client.createUser(用户);
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
//Toast.makeText(UserSurveyActivity.this,“Success!”+response.body().getTestId(),Toast.LENGTH\u SHORT.show();
Toast.makeText(UserSurveyActivity.this,“Success!”+response.body(),Toast.LENGTH\u SHORT.show();
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
Toast.makeText(UserSurveyActivity.this,“出错了!”,Toast.LENGTH\u SHORT.show();
t、 getCause();
t、 printStackTrace();
}
});
}
端点功能在postman中很好,可以添加用户并获取用户,但是,尽管请求成功,JSON数据没有正确传递,我该怎么办
多谢各位
submit.setOnClickListener(v -> {
String netScore = String.valueOf(nps.getRating());
String customerScore = String.valueOf(css.getRating());
showToast("Net score " + netScore);
showToast("Customer score " + customerScore);
// Store additional feedback here
Log.e("Additional User Feedback", additionalFeedback.getText().toString());
// preparing the data before creating JSON file.
String testId = (String) StartScreen.userDataBundle.get("testId");
Log.e("testId", testId);
long sessionStart = StartScreen.userDataBundle.getLong("sessionStart");
Log.e("sessionStart", String.valueOf(sessionStart));
String name = StartScreen.userDataBundle.getString("name");
Log.e("name", name);
long sessionEnd = Instant.now().getEpochSecond();
Log.e("sessionEnd", String.valueOf(sessionEnd));
int totalTime = 000000;
String userConsent = "true";
int buttonsCorrect = 10;
int buttonsIncorrect = 2;
JSONArray feedback = new JSONArray();
JSONObject feedbackScores = new JSONObject();
try {
feedbackScores.put("Net Score", netScore);
} catch (JSONException e) {
e.printStackTrace();
}
try {
feedbackScores.put("Customer Score", customerScore);
} catch (JSONException e) {
e.printStackTrace();
}
feedback.put(feedbackScores);
feedback.put(feedbackScores);
User user = new User(
"1",
"jeff",
0,
0,
000000,
0000000,
000000,
"true",
feedback
);
sendNetworkRequest(user);
});
additionalFeedback.addTextChangedListener(submitTextWatcher);
}
private void sendNetworkRequest(User user) {
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl("endpointURL")
.addConverterFactory(GsonConverterFactory.create());
Retrofit retrofit = builder.build();
TestClient client = retrofit.create(TestClient.class);
Call<User> call = client.createUser(user);
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
//Toast.makeText(UserSurveyActivity.this, "Success!" + response.body().getTestId(), Toast.LENGTH_SHORT).show();
Toast.makeText(UserSurveyActivity.this, "Success!" + response.body(), Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<User> call, Throwable t) {
Toast.makeText(UserSurveyActivity.this, "Something went wrong!", Toast.LENGTH_SHORT).show();
t.getCause();
t.printStackTrace();
}
});
}