gpt4 book ai didi

java - Retrofit通过POST方法从服务器获取响应消息

转载 作者:太空宇宙 更新时间:2023-11-04 12:44:16 24 4
gpt4 key购买 nike

我有一个名为 SendPoints 的方法,它使用户能够互相发送点并且它正在工作。现在,如果交易不成功,我需要从服务器检索 JSON 格式的错误消息:

这些是重要的类(class):

Service.java
@POST("/api/SendPoints")
Call<Void> SendPoints(@Body SendPoints SendPoints);

网络SDK类

NetworkSDK
public void SendPoints (SendPoints SendPoints, Callback<Void> callback){
Call<Void> call = BaseClient.getService().SendPoints(SendPoints);
call.enqueue(callback);
}

这是我需要检索的对象

public class ReturnMessage {

private String Message;

/**
*
* @return
* The Message
*/
public String getMessage() {
return Message;
}

/**
*
* @param Message
* The Message
*/
public void setMessage(String Message) {
this.Message = Message;
}
}

这是调用方法:

NetworkSDK.getInstance().SendPoints(Posiljka, new Callback<Void>() {
@Override
public void onResponse(Call<Void> call, Response<Void> response) {
Log.d("Kartica", Posiljka.getCardNumber());
Log.d("Broj bodova", Posiljka.getAmount().toString());
Log.d("Response code:", "" + response.code());

if (response.code() == 200) {
Toast.makeText(getActivity(), "Points are sent !", Toast.LENGTH_SHORT).show();

}
else
Toast.makeText(getActivity(), "Points are not sent !", Toast.LENGTH_SHORT).show();

****Here i want to get toast messages that server will return ( server will return strings (-1,-2,-3,-4 etc and I need to write message for****


}

@Override
public void onFailure(Call<Void> call, Throwable t) {
}
});
}catch (Exception e) {
Toast.makeText(getActivity(), "Error !", Toast.LENGTH_SHORT).show();

}
}
});

最佳答案

至少有两种方法可以处理您所问的问题。

  1. 在方法 SendPoints 中引发异常,并通过 ExceptionHandler 对其进行转换 [ JAX-RS / Jersey how to customize error handling? )
  2. 正如 @Exaqt 所说,您可以声明一个带有状态代码的通用返回类型。

就我个人而言,我可能更喜欢第一种方法,因为它可以帮助我构建代码并分发逻辑(我可以声明 ExceptionHandler 以返回 HttpStatus 代码和其中的响应正文)。

关于java - Retrofit通过POST方法从服务器获取响应消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36499450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com