如何使用 C# 从 MS Project Rest api 读取纯文本?

How can I read plain text from MS Project Rest api using C#?

我想使用 Rest API.

查询 Project 2013 中的项目数

我能够在 Atom10FeedFormatter class 的帮助下读取它发回的 Atom XML 文件,但我不知道 如果响应是纯文本格式,如何处理。

这个请求:

http://{my_pwa_site}/_api/ProjectData/Projects/$count

在 html 正文中返回响应“15”,显示我在 Project 2013 中的项目数。

此外,访问此站点需要网络凭据。我通常使用以下代码来完成:

Atom10FeedFormatter formatter = new Atom10FeedFormatter();

        XNamespace d = "http://schemas.microsoft.com/ado/2007/08/dataservices";

        XmlUrlResolver res = new XmlUrlResolver();
        res.Credentials = new NetworkCredential("myusername", "mypassword");

        XmlReaderSettings set = new XmlReaderSettings();
        set.XmlResolver = res;



        using (XmlReader reader = XmlReader.Create("http://{mypwasite}/_api/ProjectData/Projects", set))
        {
            formatter.ReadFrom(reader);
        }

但我不能为此目的使用 XML reader。

我应该用什么来阅读这个纯文本内容?

不需要特殊的库,这与 OData 提要无关。要处理这种数据,使用 httpclient 就足够了,而不是像常规 rest api 案例那样使用 xml reader。以下是如何执行此操作的示例:

        var credentials = new NetworkCredential("myusername", "mypass");
        var handler = new HttpClientHandler { Credentials = credentials };

        string result="";

        string path = "http://{mypwasite}/_api/ProjectData/Projects";


        using (var _client = new HttpClient(handler))
        {
            HttpResponseMessage response = await _client.GetAsync(path);

            if (response.IsSuccessStatusCode)
            {
                result = await response.Content.ReadAsStringAsync(); ;   
            }
        }