0

Refitを使用してx-www-form-urlencodedとして API にデータを送信しようとしています。しかし、何らかの理由で応答が取得されていません。私は多くのチュートリアルを段階的に実行しましたが、何も機能しませんでした。何が問題なのですか?前もって感謝します。

リクエスト:

public class SynchronizerApiRequest
    {
        public SynchronizerApiRequest() { }

        [JsonProperty("username")]
        public string Username { get; set; }

        [JsonProperty("password")]
        public string Password { get; set; }

        [JsonProperty("last_sync_date")]
        public string LastSyncDate { get; set; }
    }

応答:

public class SynchronizerApiResponse
{
    public SynchronizerApiResponse() { }

    [JsonProperty("success")]
    public bool Success { get; set; }
    
    [JsonProperty("tables")]
    public SyncData Tables { get; set; }
}

同期データ:

    public class SyncData
{
    [JsonProperty("hometab")]
    public List<HomeTab> HomeTabs { get; set; }

    [JsonProperty("category")]
    public List<Category> Categories { get; set; }

    [JsonProperty("doaa")]
    public List<Doaa> Doaas { get; set; }

    [JsonProperty("hijri")]
    public List<Hijri> Hijris { get; set; }

    [JsonProperty("hijri_events")]
    public List<Hijri> HijriEvents { get; set; }
}

インターフェース:

public interface ISynchronizer
    {
        [Post("/action.php?fn=sync")]
        Task<SynchronizerApiResponse> Request([Body(BodySerializationMethod.UrlEncoded)] SynchronizerApiRequest request);
    }

最後に、API を呼び出しているコード:

public async Task<SynchronizerApiResponse> GetAllData()
    {
        SynchronizerApiRequest request = new SynchronizerApiRequest()
        {
            Username = "***",
            Password = "***",
            LastSyncDate = Methods.IsEmpty(Methods.GetAppProperty(Constants.LAST_SYNC_DATE)) ? ""
                                  : Methods.GetAppProperty(Constants.LAST_SYNC_DATE)
        };

        syncrhonizer = RestService.For<ISynchronizer>(Constants.BASE_ADDRESS);

        SynchronizerApiResponse response = await syncrhonizer.Request(request);

        System.Diagnostics.Debug.Write(">>>>>>>>>>>>>>>>>>>>>>>>>>>>." + response.Success + " " + response.Tables.HomeTabs.Count);
        return response;

    }
4

1 に答える 1