我已经为Zimbra日历中的读写事件创建了一个示例CalDav客户端,但是当我尝试建立连接时,请求返回“ 400错误请求”。 我使用DDay.iCal库。
public static Stream ExectueMethod (string username, string password, string caldevURI, string methodName, WebHeaderCollection headers, string content, string contentType)
{
HttpWebRequest httpGetRequest = (HttpWebRequest)WebRequest.Create(caldevURI);
httpGetRequest.Credentials = new NetworkCredential(username, password);
httpGetRequest.PreAuthenticate = true;
httpGetRequest.Method = methodName;
if (headers != null && headers.HasKeys())
{
httpGetRequest.Headers = headers;
}
byte[] optionsArray = Encoding.UTF8.GetBytes(content);
httpGetRequest.ContentLength = optionsArray.Length;
if (!string.IsNullOrWhiteSpace(contentType))
{
httpGetRequest.ContentType = contentType;
}
Stream requestStream = httpGetRequest.GetRequestStream();
requestStream.Write(optionsArray, 0, optionsArray.Length);
requestStream.Close();
HttpWebResponse httpGetResponse = (HttpWebResponse)httpGetRequest.GetResponse();
Stream responseStream = httpGetResponse.GetResponseStream();
return ResponseStream;
}