2010-06-29 6 views
0

Есть ли какой-либо сайт или кто-то может предоставить мне образец запроса PROFIND, пожалуйста.Пример кода для WebDAV PROPFIND

Я попробовал образец кода PROFIND из MSDN, но получил 400 Bad request.

Невозможно понять, почему это происходит.

Ранее разместил вопрос на Getting 400 Bad request from WebDav Server

Любые предложения будут очень полезны.

Редактировать

@Julian,

обновил свой запрос тело к следующему:

strBody = "<?xml version='1.0' encoding='utf-8'?>" 
       + "<propfind xmlns='DAV:'>" 
       + "<allprop/>" 
       + "</propfind>"; 

, как описано в RFC 4918, Section 9.1

Но я все еще получаю 400 Bad запрос Ошибка. M Я пропускаю заголовки. Пожалуйста, представьте, что я задаю следующий заголовок:

System.Net.HttpWebRequest Request; 
Request.Credentials = MyCredentialCache; 
Request.Method = "PROPFIND"; 

bytes = Encoding.UTF8.GetBytes((string)strBody); 
Request.ContentType = "text/xml"; 

Нужно ли устанавливать или указывать что-то дополнительное. Полный код находится в моем Previosu Вопрос.

Спасибо,

Subhen

+0

Задавая тот же вопрос снова не очень полезно. В RFC 4918 приведены примеры; вы их пробовали? –

+0

@Julian, пробовал с RFC 4918, раздел 9.1 и все еще получал ошибку 400. Обновлено сообщение. Спасибо – Simsons

+0

Вы проверили, что говорит тело ответа? –

ответ

4

Ok я пропускал глубины Заголовок и по этой причине веб-сервер возвращал метод не позволил ошибку.

MSDN clearlystates что PROPFIND с глубиной значение «бесконечности» не поддерживается в общественном магазине, который доступен для MAPI клиентов, таких как Microsoft Outlook.

И ошибка Ошибка 404 возникла из-за того, что я не использовал прокси-сервер. Итак, что я сделал, я прокомментировал строку, которая не использовала прокси-сервер, и добавил заголовок Depth.

// Request.Proxy = GlobalProxySelection.GetEmptyWebProxy(); 
Request.Headers.Add("Depth", "1"); 

Полный C# код можно найти here

Смежные вопросы