UCWA如何发送Get/POST请求的Rest API

本文关键字:请求 Rest API POST 何发送 Get UCWA | 更新日期: 2023-09-27 18:13:16

我必须在我的一个项目中使用UCWA rest api。我必须使用c#发出GET请求并读取输出。

我从文档中收到的样本,如。

在自动发现URL上发送GET请求。自动发现URL可以通过将域名附加到字符串"https://lyncdiscover"来构建。例如,如果域名是"contoso.com",那么自动发现的URL将是"https://lyncdiscover.contoso.com/"。

GET https://lyncdiscover.contoso.com/ HTTP/1.1
X-Ms-Origin: http://app.fabrikam.com
Accept: application/json
X-Requested-With: XMLHttpRequest
Referer: https://lyncdiscover.contoso.com/xframe
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Host: lyncdiscover.contoso.com
Connection: Keep-Alive

如何在c#中使用httpClient发送这样的请求并读取输出。

我有一个js代码如下所示,我必须将该代码转换为c#。

Javascript代码示例(来自Postman Chrome插件):

var form = new FormData();
form.append("grant_type", "urn:microsoft.rtc:windows");
var settings = {
"async": true,
"crossDomain": true,
"url": "https://lynctswebint.MyComp.com/WebTicket/oauthtoken",
"method": "POST",
"headers": {
"cache-control": "no-cache",
"postman-token": "a9kb75b0-e03e-1234-94hi-62861c987654"
},
"processData": false,
"contentType": false,
"mimeType": "multipart/form-data",
"data": form
}
$.ajax(settings).done(function (response) {
console.log(response);
});

我如何将上面的代码转换为c# ?

UCWA如何发送Get/POST请求的Rest API

创建Webclient:

WebClient client = new WebClient("https://lyncdiscover.contoso.com/");

所有其他信息都可以添加为Headers。例如:

client.Headers["User-Agent"] = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)";
client.Headers["X-Requested-With"] = "XMLHttpRequest";
[...]

读取结果:

string output;    
using(Stream data = client.OpenRead(args[0]))
{
    using(StreamReader reader = new StreamReader(data))
    {
        output = reader.ReadToEnd();
    }
}