Dynamics 365 Oauth認證後使用HttpWebRequest調用Web API

    在拿到Oauth的token後就要用來調用web api了,但官方示例代碼中用的均是HttpClient,如果按照官方的教程做當然是OK的,但我之前寫的調用web api的C#公共類用的均是HttpWebRequest,如果要換成HttpClient那就意味着公共類得重寫,有點麻煩。

    那是否有辦法繼續使用HttpWebRequest來調用web api呢,答案當然是可以的,只需要修改我之前公共類的下方註釋中的兩行,就可以繼續使用了。

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(weburi);
            req.Method = "Get";
            req.Accept = "application/json";
            req.ContentType = "application/json; charset=utf-8";
            req.Headers.Set("OData-MaxVersion", "4.0");
            req.Headers.Set("OData-Version", "4.0");
            req.Headers.Set("Prefer", "odata.include-annotations=OData.Community.Display.V1.FormattedValue");
//和之前的區別就是用下面這句替換之前的username和password的NetworkCredential
            req.Headers.Set("Authorization", "Bearer " + access_token);
//下面這句要加,這才之前的博文中有提及,不加會報錯
            System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
            using (HttpWebResponse res = (HttpWebResponse)req.GetResponse())
            {
                StreamReader read = new StreamReader(res.GetResponseStream());
                string result = read.ReadToEnd();
            }

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章