[英]Failed to receive any response from server in android using Retrofit and PHP as backend
Failed to receive body from response.无法从响应中接收正文。 i used php as back end server in android using Retrofit.
我使用 php 作为 android 中的后端服务器,使用 Retrofit。 in my every project i used retrofit but this time i failed getting response body from server i don't know where is the problem.
在我的每个项目中,我都使用了 retrofit 但这次我未能从服务器获取响应正文,我不知道问题出在哪里。
I search all over the internet but i failed to get out myself from the problem.我在整个互联网上搜索,但我未能从问题中解脱出来。 in below i put all of my code.
在下面我把我所有的代码。 Thanks you a lot in advance
非常感谢你提前
VideoApi.class
VideoApi.class
import java.util.List;导入 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 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
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());
}
});
}
}
You seem to be wrong in the attributes you parse.您解析的属性似乎是错误的。 I expect that from this line:
我希望从这一行:
Log.d("VIDEOLINK", "onResponse: "+link);
You get the output你得到 output
"onResponse: null"
Correct your SerializedName
definitions:更正您的
SerializedName
定义:
@SerializedName("name")
@Expose
private String categoryName;
@SerializedName("link")
@Expose
private String videoLink;
I am basing my answer on what I see as response from your API.我的回答基于我从您的 API 看到的响应。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.