我必须在我的一个项目中使用UCWA rest APIS。我必须发出GET请求并使用C#读取输出。
我从文档中收到的样本,如。
在自动发现网址上发送GET请求。 可以通过将域名附加到字符串" https://lyncdiscover"来构建自动发现URL。 例如,如果域名为" contoso.com",则自动发现网址为" 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#转换上述代码?
答案 0 :(得分:0)
创建Webclient:
WebClient client = new WebClient("https://lyncdiscover.contoso.com/");
所有其他信息可以添加为标题。例如:
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();
}
}