簡體   English   中英

動態返回序列化的RestSharp結果

[英]Dynamically returning serialized RestSharp results

嘗試使用RestSharp調用REST端點的通用方法,我遇到的唯一問題是將內容作為動態返回。

Response.Data為null,Response.Content始終為字符串。 我希望返回值至少是一個匿名類型。

public T Call<T>(string url, Method method = Method.GET, ResponseType type = ResponseType.JSON, params Parameter[] parameters)
{
    var request = new RestRequest(url, method);

    switch (type)
    {
        case ResponseType.JSON:
            request.AddHeader("Content-Type", "application/json");
            request.AddHeader("Accept", "application/json");
            request.RequestFormat = DataFormat.Json;
            break;
        case ResponseType.XML:
            request.AddHeader("Content-Type", "application/xml");
            request.AddHeader("Accept", "application/xml");
            request.RequestFormat = DataFormat.Xml;
            break;
    }

    foreach (var parameter in parameters)
        request.AddParameter(parameter);

    var response = _client.Execute<dynamic>(request);

    if (!string.IsNullOrEmpty(response.ErrorMessage) || response.ErrorException != null)
        throw new System.Exception(response.ErrorMessage, response.ErrorException);

    return response.Data;
}

鑒於你有類型T,你不能這樣做:

var response = _client.Execute<T>(request);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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