【发布时间】:2021-05-20 08:05:08
【问题描述】:
我是 Retrofit 和 API 集成的新手。我试图在敬酒中显示响应。我正在使用 Retrofit 进行 API 调用。但是 Retrofit 的响应显示为 null 。没有响应而是空的。我不知道可能做错了。这是我的代码。请帮帮我
以下是示例 API
Params:
{
"DeviceID": "Hawqr-jagadish-test-device",
"DeviceType": "1",
"DeviceName": "Jagadish Device",
"AppVersion": 1
}
Response:
{
"success": true,
"extras": {
"Status": "Device Splash Screen Completed Successfully",
"Env_Type": 2,
"ApiKey": "4ae3a7e5-2622-4376-bc0d-a0ccd6c0405a",
"Whether_Latest_Version": true,
"SocketIO_Data": {
"socket_host": "https://xsocket.hawqr.com",
"socketjs_link": "https://xsocket.hawqr.com/socket.io/socket.io.js"
}
}
}
这是我的主要活动。在主要活动中我有调用 API
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(MainActivity.this,LoginActivity.class);
startActivity(intent);
finish();
}
},SPLASH_SCREEN );
String DeviceID = "Hawqr-jagadish-test-device";
String DeviceType = "1";
String DeviceName = "Jagadish Device";
Integer AppVersion = 1 ;
SplashRequest splashRequest = new SplashRequest();
splashRequest.setDeviceID(DeviceID);
splashRequest.setDeviceType(DeviceType);
splashRequest.setDeviceName(DeviceName);
splashRequest.setAppVersion(AppVersion);
SplashScreen(splashRequest);
}
public void SplashScreen(SplashRequest splashRequest){
UserService userService = ApiClient.getRetrofit().create(UserService.class);
Call<SplashResponse> splashResponseCall = userService.splashScreen(splashRequest);
splashResponseCall.enqueue(new Callback<SplashResponse>() {
@Override
public void onResponse(Call<SplashResponse> call, Response<SplashResponse> response) {
Gson gson = new Gson();
String successResponse = gson.toJson(response.body());
Toast.makeText(MainActivity.this,successResponse,Toast.LENGTH_LONG).show();
}
@Override
public void onFailure(Call<SplashResponse> call, Throwable t) {
String msg = t.getLocalizedMessage();
Toast.makeText(MainActivity.this,msg,Toast.LENGTH_SHORT).show();
}
});
}
}
这些是我的参数模型类
public class SplashRequest {
public String DeviceID;
public String DeviceType;
public String DeviceName;
public Integer AppVersion;
public String getDeviceID() {
return DeviceID;
}
public void setDeviceID(String deviceID) {
DeviceID = deviceID;
}
public String getDeviceType() {
return DeviceType;
}
public void setDeviceType(String deviceType) {
DeviceType = deviceType;
}
public String getDeviceName() {
return DeviceName;
}
public void setDeviceName(String deviceName) {
DeviceName = deviceName;
}
public Integer getAppVersion() {
return AppVersion;
}
public void setAppVersion(Integer appVersion) {
AppVersion = appVersion;
}
另一个模型类
public String ApiKey;
public String Env_Type;
public String Status;
public String Whether_Latest_Version;
public SplashResponse(String apiKey, String env_Type, String status, String whether_Latest_Version) {
ApiKey = apiKey;
Env_Type = env_Type;
Status = status;
Whether_Latest_Version = whether_Latest_Version;
}
public String getApiKey() {
return ApiKey;
}
public void setApiKey(String apiKey) {
ApiKey = apiKey;
}
public String getEnv_Type() {
return Env_Type;
}
public void setEnv_Type(String env_Type) {
Env_Type = env_Type;
}
public String getStatus() {
return Status;
}
public void setStatus(String status) {
Status = status;
}
public String getWhether_Latest_Version() {
return Whether_Latest_Version;
}
public void setWhether_Latest_Version(String whether_Latest_Version) {
Whether_Latest_Version = whether_Latest_Version;
}
}
这是我的飞溅响应和请求接口类
@POST("authenticate/")
Call<SplashResponse> splashScreen(@Body SplashRequest splashRequest);
【问题讨论】:
-
你知道代码是否成功吗?你在 onFailure 里面什么都没有,所以没有办法知道它为什么会失败
-
好的,我会这样做的
-
分享来自 onFailure 的错误。
-
现在显示这些空花括号“{}”