我已经开始学习一些MVC,并且正在考虑使用Restful API创建仪表板。到目前为止,一切都进行得很顺利,但是,我遇到了我认为这是一个非常简单的修复程序,似乎无法弄清。
如果我向以应用程序/ json作为响应主体的API的一部分发出GET请求,则一切正常。但是,如果响应正文返回一个text / plain值,那么我收到的只是一个空值。
当我在Web浏览器或Postman中访问API URL时,它仅返回一个数字,因此这不应该是一个复杂的问题,由于缺乏知识,我只是缺少一些明显的东西。
如何使用文本/纯文本返回API的数据?
这是我在控制器中使用的代码:
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后如何尝试返回数据,但是弄清楚我要去哪里出错会很有帮助。
答案 0 :(得分:0)
快速感谢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();