diff --git a/carddav.php b/carddav.php
index e18e93e..7370274 100644
--- a/carddav.php
+++ b/carddav.php
@@ -106,14 +106,14 @@ if ($path === '/.well-known/carddav') {
. ''
. '' . CardDav::x(CardDav::HOME_PATH)
. ''
- . '',
+ . 'HTTP/1.1 200 OK',
];
foreach (CardDav::books($cdFamily, $cdMe) as $cdB) {
$cdParts[] = '' . CardDav::x(CardDav::hrefOf($cdB)) . ''
. ''
. ''
. '' . CardDav::x((string)$cdB['name']) . ''
- . '';
+ . 'HTTP/1.1 200 OK';
}
header('Content-Type: application/xml; charset=utf-8');
http_response_code(207);
@@ -213,7 +213,7 @@ if ($method === 'PROPFIND') {
. ''
. '' . CardDav::x(CardDav::PRINCIPAL_PATH)
. ''
- . '',
+ . 'HTTP/1.1 200 OK',
]);
exit;
}
@@ -233,7 +233,7 @@ if ($method === 'PROPFIND') {
. '' . CardDav::x(CardDav::HOME_PATH)
. ''
. $readOnlyPriv
- . '',
+ . 'HTTP/1.1 200 OK',
]);
exit;
}
@@ -259,7 +259,7 @@ if ($method === 'PROPFIND') {
. '' . CardDav::x(CardDav::HOME_PATH)
. ''
. $readOnlyPriv
- . '',
+ . 'HTTP/1.1 200 OK',
]);
exit;
}
@@ -283,7 +283,7 @@ if ($method === 'PROPFIND') {
. '' . CardDav::x(CardDav::HOME_PATH)
. ''
. $readOnlyPriv
- . '';
+ . 'HTTP/1.1 200 OK';
// 首次请求 `/carddav/`(不是 home 路径)时,另加一条指向 `/carddav/` 自身的响应,
// 客户端会拿它当后续请求的 base。
if (!$isHome) {
@@ -297,7 +297,7 @@ if ($method === 'PROPFIND') {
. ''
. '' . CardDav::x(CardDav::HOME_PATH)
. ''
- . '';
+ . 'HTTP/1.1 200 OK';
}
foreach (CardDav::books($familyId, $me) as $b) {
$parts[] = '' . CardDav::x(CardDav::hrefOf($b)) . ''
@@ -307,7 +307,7 @@ if ($method === 'PROPFIND') {
. ''
. CardDav::x((string)$b['description']) . ''
. $readOnlyPriv
- . '';
+ . 'HTTP/1.1 200 OK';
}
$emit($parts);
exit;
@@ -332,7 +332,7 @@ if ($method === 'PROPFIND') {
. ''
. 'text/vcard; charset=utf-8'
. '' . strlen($card['body']) . ''
- . '';
+ . 'HTTP/1.1 200 OK';
}
$emit($parts);
exit;
@@ -351,7 +351,7 @@ if ($method === 'PROPFIND') {
. ''
. '' . CardDav::x((string)($book['name'] ?? '家庭名册')) . ''
. $readOnlyPriv
- . '',
+ . 'HTTP/1.1 200 OK',
]);
exit;
}
@@ -473,7 +473,7 @@ if ($method === 'REPORT') {
. ''
. '' . CardDav::x($card['etag']) . ''
. $cardDataXml($card)
- . '',
+ . 'HTTP/1.1 200 OK',
]);
exit;
}
@@ -510,7 +510,7 @@ if ($method === 'REPORT') {
. ''
. '' . CardDav::x($card['etag']) . ''
. $cardDataXml($card)
- . '';
+ . 'HTTP/1.1 200 OK';
}
unset($bodyRaw);
$emit($parts);
diff --git a/dav.php b/dav.php
index 9adafd5..c97d0d1 100644
--- a/dav.php
+++ b/dav.php
@@ -133,7 +133,7 @@ if ($path === '/.well-known/caldav') {
. ''
. '' . CalDav::x(CalDav::CARD_HOME_PATH)
. ''
- . '',
+ . 'HTTP/1.1 200 OK',
];
foreach (CalDav::books($wkFamily, $wkMe) as $wkC) {
$wkParts[] = '' . CalDav::x(CalDav::hrefOf($wkC)) . ''
@@ -141,7 +141,7 @@ if ($path === '/.well-known/caldav') {
. ''
. '' . CalDav::x('家书 · ' . (string)$wkC['name']) . ''
. ''
- . '';
+ . 'HTTP/1.1 200 OK';
}
CalDav::multis();
echo '' . "\n"
@@ -336,7 +336,7 @@ if ($method === 'PROPFIND') {
. ''
. '' . CalDav::x(CalDav::CARD_HOME_PATH)
. ''
- . '',
+ . 'HTTP/1.1 200 OK',
]);
exit;
}
@@ -362,7 +362,7 @@ if ($method === 'PROPFIND') {
. '' . CalDav::x(CalDav::CARD_HOME_PATH)
. ''
. $readOnlyPriv
- . '',
+ . 'HTTP/1.1 200 OK',
]);
exit;
}
@@ -401,7 +401,7 @@ if ($method === 'PROPFIND') {
. '' . CalDav::x(CalDav::CARD_HOME_PATH)
. ''
. $readOnlyPriv
- . '',
+ . 'HTTP/1.1 200 OK',
]);
exit;
}
@@ -432,7 +432,7 @@ if ($method === 'PROPFIND') {
. '' . CalDav::x($ctag) . ''
. '' . CalDav::x(CalDav::PRINCIPAL_PATH) . ''
. $privOf($w)
- . '';
+ . 'HTTP/1.1 200 OK';
}
// 🔴 v33:**始终**先输出 home 集合自身。
// RFC 4918 规定 PROPFIND 响应**必须包含被请求的资源本身**,Depth:1 也是。
@@ -448,7 +448,7 @@ if ($method === 'PROPFIND') {
. '' . CalDav::x(CalDav::HOME_PATH)
. ''
. $readOnlyPriv
- . '';
+ . 'HTTP/1.1 200 OK';
// 首次请求 `/dav/`(bookId=0 且不是 home 路径)时,把发现链的三个答案一并给出:
// 有些客户端在 /dav/ 上**同时**问 current-user-principal —— 少给一个它就又断了。
if (!$isHome) {
@@ -462,7 +462,7 @@ if ($method === 'PROPFIND') {
. ''
. '' . CalDav::x(CalDav::HOME_PATH)
. ''
- . '');
+ . 'HTTP/1.1 200 OK');
}
$emit('xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:caldav" '
. 'xmlns:x="http://apple.com/ns/ical/" '
@@ -489,7 +489,7 @@ if ($method === 'PROPFIND') {
. '' . CalDav::x($etag) . ''
. ''
. 'text/calendar; charset=utf-8'
- . '';
+ . 'HTTP/1.1 200 OK';
}
$emit('xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:caldav"', $parts);
exit;
@@ -515,7 +515,7 @@ if ($method === 'PROPFIND') {
. '' . CalDav::x($ct) . ''
. '' . CalDav::x(CalDav::PRINCIPAL_PATH) . ''
. $privOf($cw)
- . '',
+ . 'HTTP/1.1 200 OK',
]);
exit;
}
@@ -650,7 +650,7 @@ if ($method === 'REPORT') {
. ''
. '' . CalDav::x($res['etag']) . ''
. '' . CalDav::x($res['ics']) . ''
- . '',
+ . 'HTTP/1.1 200 OK',
]);
exit;
}
@@ -680,7 +680,7 @@ if ($method === 'REPORT') {
. ''
. '' . CalDav::x($res['etag']) . ''
. '' . CalDav::x($res['ics']) . ''
- . '';
+ . 'HTTP/1.1 200 OK';
}
$emit('xmlns:d="DAV:" xmlns:c="urn:ietf:params:xml:ns:caldav"', $parts);
exit;