gpt4 book ai didi

java - 无法使用 Retrofit 和 PHP 作为后端从 android 中的服务器接收任何响应

转载 作者:行者123 更新时间:2023-12-05 00:04:48 25 4
gpt4 key购买 nike

无法从响应中接收正文。我在使用 Retrofit 的 android 中使用 php 作为后端服务器。在我的每个项目中,我都使用了改造,但这次我无法从服务器获取响应主体,我不知道问题出在哪里。

我在整个互联网上进行了搜索,但未能从问题中解脱出来。在下面我把我所有的代码。非常感谢你提前

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();

}

模型类.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);

你得到输出

"onResponse: null"

更正您的 SerializedName 定义:

@SerializedName("name")
@Expose
private String categoryName;
@SerializedName("link")
@Expose
private String videoLink;

我的回答基于我认为来自您的 API 的响应。

关于java - 无法使用 Retrofit 和 PHP 作为后端从 android 中的服务器接收任何响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62057603/

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