Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从CalDav API创建新日历_Api_Httprequest_Caldav_Sabredav - Fatal编程技术网

从CalDav API创建新日历

从CalDav API创建新日历,api,httprequest,caldav,sabredav,Api,Httprequest,Caldav,Sabredav,我正在尝试使用SabreDav在校长的主文件夹中创建一个新日历 我找不到如何做到这一点——这有可能吗 更新: 我发现了MKCALENDAR方法,但下面返回了一个“放弃”请求错误: <C:mkcalendar xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:ical="http://apple.com/ns/ical/" >" <D:set> <D:prop>

我正在尝试使用SabreDav在校长的主文件夹中创建一个新日历

我找不到如何做到这一点——这有可能吗

更新: 我发现了MKCALENDAR方法,但下面返回了一个“放弃”请求错误:

<C:mkcalendar xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav"  xmlns:ical="http://apple.com/ns/ical/" >"
    <D:set>
        <D:prop>
            <D:displayname>cal Display Name</D:displayname> 
            <ical:calendar-color>cal Color</ical:calendar-color>
        </D:prop>
    </D:set>
</C:mkcalendar>
我收到的错误消息是

请求已中止:请求已取消

在服务器端,以下是访问日志:

192.168.1.200---[06/Jul/2015:09:51:48+0200]“MKCALENDAR/calendarserver.php/calendars/admin/my_new_calendar/HTTP/1.1”400 25“-”

错误日志为空。。。所以,我似乎得到了一个“坏请求”响应,而在准备请求时却没有被捕获


更新3:正文包含特殊字符“êê…”,这就是contentlength部分出错的原因

我把hnh的评论作为一个答案:问题确实是
请求。ContentLength=body.Length

更正代码为:

Request.ContentLength = Encoding.UTF8.GetByteCount(body);

你提供的信息太少了。您将此信息发送到的URL是什么?服务器返回的HTTP错误是什么?注:创建日历的“现代”方法是通过MKCOL,尽管所有服务器都应该支持MKCALENDAR。我添加了尽可能多的详细信息-请参阅更新2。您需要找到一种方法,在服务器中启用更多日志,以了解为什么它会抛出400。你省略了你的身体变量,所以可能有什么地方不对劲。注意:Request.ContentLength=body.Length是错误的,您需要将内容长度设置为UTF8字节长度,尽管这在您的示例中并不重要。
Request.ContentLength = Encoding.UTF8.GetByteCount(body);