0

我想使用 Rest API 查询 Project 2013 中的项目数量。

我可以在 Atom10FeedFormatter 类的帮助下读取它发回的 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 阅读器。

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

4

1 回答 1

0

不需要特殊的库,这与 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(); ;   
            }
        }
于 2020-06-17T09:57:48.703 回答