【发布时间】:2020-06-09 00:00:43
【问题描述】:
我正在使用此方法执行我的应用程序的每个发布方法:
1-这是我执行 get 和 post 方法的界面:
@POST("feedback/challenge/newRating")
Call<IncreasedChallengeFeedback> challengeFeedbackIncreaseRating(@Body IncreasedChallengeFeedback increasedFeedbackChallenge);
2- 调用方法
public void increaseRatingCFb(IncreasedChallengeFeedback increasedChallengeFeedback) {
Gson gson = new GsonBuilder()
.setLenient()
.create();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://10.0.2.2:3000/")
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
api = retrofit.create(INodeJS.class);
Call<IncreasedChallengeFeedback> call = api.challengeFeedbackIncreaseRating(increasedChallengeFeedback);
call.enqueue(new Callback<IncreasedChallengeFeedback>() {
@Override
public void onResponse(Call<IncreasedChallengeFeedback> call, Response<IncreasedChallengeFeedback> response) {
if (!response.isSuccessful()) {
System.out.println("!= Successful" + response.code());
return;
}
}
@Override
public void onFailure(Call<IncreasedChallengeFeedback> call, Throwable t) {
System.out.println("OnFailure: " + t.getMessage());
}
});
}
3- 这里我只是创建了一个类的对象来与方法一起使用
holder.likeButton.setOnLikeListener(new OnLikeListener() {
@Override
public void liked(LikeButton likeButton) {
IncreasedChallengeFeedback icfb = new IncreasedChallengeFeedback("8","2");
increaseRatingCFb(icfb);
}
4- 最后是它的类
public class IncreasedChallengeFeedback {
private String cFeedbackRating;
private String cFeedbackID;
public IncreasedChallengeFeedback(String cFeedbackRating, String cFeedbackID) {
this.cFeedbackRating = cFeedbackRating;
this.cFeedbackID = cFeedbackID;
}
}
有了这个我得到了这个错误:
Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $
所以我添加了这个:
Gson gson = new GsonBuilder()
.setLenient()
.create();
然后错误变成这样:
Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
问题是我完成了所有其他帖子并使用该方法获取方法,然后突然我陷入了这个错误。
【问题讨论】:
标签: java android android-studio retrofit retrofit2