簡體   English   中英

使用 Retrofit 和 PHP 作為后端,無法從 android 中的服務器接收任何響應

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM