使用HttpMethod的自定义值

时间:2013-10-25 17:49:41

标签: c# dotnet-httpclient http-method

我正在使用HttpClient,我需要为HttpMethod设置非标准类型。使用HttpWebRequest只需要一个字符串,HttpClient需要一个HttpMethod。枚举HttpMethod中的可用值,我看不到添加自定义值的方法。有什么想法吗?

2 个答案:

答案 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);
        }
    ...