繁体   English   中英

如果Content-Type为“ text / plain”,则GET RestSharp请求返回空值,而如果Content-Type为“ application / json”,则返回数据

[英]GET RestSharp request returns null value if the Content-Type is “text/plain”, whereas if Content-Type is “application/json” data is returned

我已经开始学习一些MVC,并且正在考虑使用Restful API创建仪表板。 到目前为止,一切都进行得很顺利,但是,我遇到了我认为这是一个非常简单的修复程序,似乎无法弄清楚。

如果我对以应用程序/ json作为响应主体的API的一部分发出GET请求,则一切正常。 但是,如果响应正文返回一个text / plain值,那么我收到的只是一个空值。

当我在Web浏览器或Postman中访问API URL时,它仅返回一个数字,因此这不应该是一个复杂的问题,由于缺乏知识,我只是缺少一些明显的东西。

如何使用文本/纯文本返回API的数据?

这是我在Controller中使用的代码:

   var client = new RestClient("http://URL:1234/api/");
            client.Authenticator = new HttpBasicAuthenticator("XXXXX", "XXXXX");
            var ErrorQueue = new RestRequest("errorqueue/count", Method.GET);
            ErrorQueue.AddHeader("Accept", "text/plain");
            ViewBag.errorQueueTotal = client.Execute<DashboardModel>(ErrorQueue).Data;

这是我模型中的代码:

public class DashboardModel
{

    public DataModel data { get; set; }

}

public class DataModel
{
    public string version { get; set; }
    public string name { get; set; }
    public string uptime { get; set; }
    public int errors { get; set; }
}

仅供参考,这是我的视图,该视图称为ViewBag:

 <div class="container">
    <h3>Error Queue</h3>
    <div class="panel panel-default panel-default-Messages">
        <div class="panel-body">
            <label>Error Queue: </label>
            <span id="errorSpanID">@ViewBag.errorQueueTotal.data.errors</span>
        </div>
    </div>
</div>

我认为问题在于请求API后如何尝试返回数据,但是弄清楚我要去哪里的问题确实很有帮助。

快速感谢Fran抽出宝贵时间发表评论和提供帮助。

下面的代码是我用来解决此问题的代码。 我不能完全确定为什么RestSharp对我提出的所有其他GET请求都有效时为什么返回空值。 尽管如此,这对我来说非常合适! :)

var clienttest = new WebClient();
            clienttest.Credentials = new NetworkCredential("XXXXX", "XXXXX");
            var response = clienttest.DownloadString("http://XXXXX:1234/api/Test/1234/state");
            ViewBag.details = response.ToString();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM