我正在使用HttpClient
,我需要为HttpMethod
设置非标准类型。使用HttpWebRequest
只需要一个字符串,HttpClient
需要一个HttpMethod
。枚举HttpMethod
中的可用值,我看不到添加自定义值的方法。有什么想法吗?
答案 0 :(得分:8)
不知道为什么我之前没想过尝试过这个问题,但我可以致电new HttpMethod("MYMETHOD");
答案 1 :(得分:2)
非常感谢你。我尝试了最奇怪的东西,但我没有看到这个简单的解决方案:)
我尝试使用CalDAV REST-Requests在XAML-C#-MetroApp中连接我自己的Cloud-CalDAV-Server。现在工作完美。我终于可以将HTTP-Method更改为PROPFIND-Type。
这是我的代码,用于检索信息(http://sabre.io/dav/building-a-caldav-client/)。
...
try {
HttpClientHandler httpClientHandler = new HttpClientHandler();
httpClientHandler.AllowAutoRedirect = false;
httpClientHandler.Credentials = new NetworkCredential(caldavuserTB.Text, caldavpasswordTB.Text);
HttpClient httpClient = new HttpClient(httpClientHandler);
httpClient.MaxResponseContentBufferSize = 256000;
propfindMethod = new HttpMethod("PROPFIND");
propfindHttpRequestMessage = new HttpRequestMessage(propfindMethod, webURLAsURI);
propfindHttpRequestMessage.Headers.Add("Prefer", "return-minimal");
propfindHttpRequestMessage.Headers.Add("Depth", "0");
propfindHttpRequestMessage.Headers.Add("Accept", "application/xml; charset=utf-8");
propfindHttpRequestMessage.Content = new StringContent("<d:propfind xmlns:d=\"DAV:\" xmlns:cs=\"http://calendarserver.org/ns/\"><d:prop><d:displayname /><cs:getctag /></d:prop></d:propfind>");
propfindHttpResponseMesage = await httpClient.SendAsync(propfindHttpRequestMessage);
}
...