![](/img/trans.png)
[英]android: How to receive response from the following json using Retrofit?
[英]Failed to receive any response from server in android using Retrofit and PHP as backend
无法从响应中接收正文。 我使用 php 作为 android 中的后端服务器,使用 Retrofit。 在我的每个项目中,我都使用了 retrofit 但这次我未能从服务器获取响应正文,我不知道问题出在哪里。
我在整个互联网上搜索,但我未能从问题中解脱出来。 在下面我把我所有的代码。 非常感谢你提前
VideoApi.class
导入 java.util.List;
import retrofit2.Call;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.http.GET;
public interface VideoApi {
String BASE_URL = "https://mozeloapp.in/ViddoApp/ViddoVideoRetrive.php/";
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
@GET(BASE_URL)
Call<List<VideoModel>> getVideoLink();
}
ModelClass.java
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class VideoModel {
@SerializedName("id")
@Expose
private String id;
@SerializedName("categoryId")
@Expose
private String categoryId;
@SerializedName("categoryName")
@Expose
private String categoryName;
@SerializedName("videoLink")
@Expose
private String videoLink;
public VideoModel() {
}
public VideoModel(String id, String categoryId, String categoryName, String videoLink) {
this.id = id;
this.categoryId = categoryId;
this.categoryName = categoryName;
this.videoLink = videoLink;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCategoryId() {
return categoryId;
}
public void setCategoryId(String categoryId) {
this.categoryId = categoryId;
}
public String getCategoryName() {
return categoryName;
}
public void setCategoryName(String categoryName) {
this.categoryName = categoryName;
}
public String getVideoLink() {
return videoLink;
}
public void setVideoLink(String videoLink) {
this.videoLink = videoLink;
}
}
MainActivity.java
private VideoApi videoApi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
videoApi = VideoApi.retrofit.create(VideoApi.class);
Call<List<VideoModel>> call = videoApi.getVideoLink();
call.enqueue(new Callback<List<VideoModel>>() {
@Override
public void onResponse(Call<List<VideoModel>> call, Response<List<VideoModel>> response) {
if (response.isSuccessful()){
for (VideoModel videoModel : response.body()){
String link = videoModel.getVideoLink();
Log.d("VIDEOLINK", "onResponse: "+link);
}
}else {
Log.d("VIDEOLINK", "onResponse: "+"failed");
}
}
@Override
public void onFailure(Call<List<VideoModel>> call, Throwable t) {
Log.d("VIDEOLINK", "onResponse: "+t.getLocalizedMessage());
}
});
}
}
您解析的属性似乎是错误的。 我希望从这一行:
Log.d("VIDEOLINK", "onResponse: "+link);
你得到 output
"onResponse: null"
更正您的SerializedName
定义:
@SerializedName("name")
@Expose
private String categoryName;
@SerializedName("link")
@Expose
private String videoLink;
我的回答基于我从您的 API 看到的响应。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.