使用 HttpMethod 的自定义值

本文关键字:自定义 HttpMethod 使用 | 更新日期: 2023-09-27 18:36:57

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

使用 HttpMethod 的自定义值

不知道为什么我以前没有想到尝试这个,但我可以打电话给new HttpMethod("MYMETHOD");

非常感谢。我尝试了最奇怪的东西,但我没有看到这个简单的解决方案:)

我尝试使用 CalDAV REST-Requests 在 XAML-C#-MetroApp 中与我自己的 Cloud-CalDAV-Server 连接。现在工作完美。我终于可以将HTTP方法更改为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);
        }
    ...