![](/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.