我尝试将数据发布到 API,但收到此错误:
Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $
有人知道如何解决这个问题吗?
在 Activity 中发布数据的代码
private void callList(){
String signature = new String(Hex.encodeHex(DigestUtils.md5(
TMK + appId + appVersion +
SessionManager.getSession(getApplicationContext(), getString(R.string.session_token)))
));
Call<PostGetList> postGetListCall = mApiInterface.postGetList(
appId,
appVersion,
SessionManager.getSession(getApplicationContext(), getString(R.string.session_token)),
signature);
postGetListCall.enqueue(new Callback<PostGetList>() {
@Override
public void onResponse(Call<PostGetList> call, Response<PostGetList> response) {
status = response.body().getStatus();
Utils.logcat("Recv getInfo Status " + status);
if (status.equals(getString(R.string.rc00))) {
Message.message(getApplicationContext(), "Success");
} else {
Message.message(getApplicationContext(), status);
}
}
@Override
public void onFailure(Call<PostGetList> call, Throwable t) {
String responseMsg = "Fail to connect";
Utils.logcat(responseMsg);
Toast.makeText(getApplicationContext(), responseMsg, Toast.LENGTH_LONG).show();
Utils.logcat(t.toString());
}
});
}
ApiInterface.java
@FormUrlEncoded
@POST("List.php")
Call<PostGetList> postGetList(@Field("appId") String appId,
@Field("appVersion") String appVersion,
@Field("token") String token,
@Field("signature") String signature);
PostGetList.java
public class PostGetList {
@SerializedName("status")
String status;
@SerializedName("data")
String data;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
API 应返回
{ “status”:”00”,
”data”:”List Data”}
最佳答案
您确定您的 json 响应没有格式错误吗? 请在 https://jsonlint.com/ 等网站验证您的回复查看您的响应是否正确 json。
关于java - 如何修复Android Studio中的 'Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $'错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58336845/