2010-06-29 52 views
0

是否有任何網站或某個人可以提供示例PROFIND請求。WebDAV的示例代碼PROPFIND

我試着從MSDN的PROFIND代碼示例,但得到400錯誤的請求。

無法理解爲什麼會發生這種情況。

以前張貼在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錯誤請求錯誤。我錯過了任何標題。請建議我設置以下標題信息:

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有例子;你嘗試過嗎? – 2010-06-29 06:02:38

+0

@ Julian,試用RFC 4918,9.1節,仍然收到400錯誤。更新了帖子。 謝謝 – Simsons 2010-06-29 09:49:16

+0

你有沒有檢查響應主體說什麼? – 2010-06-29 12:42:31

回答

4

好,我是缺少深度頭和這個原因,網絡服務器返航不允許的方法錯誤。

MSDN明確指出 深度值爲「infinity」的PROPFIND在MAPI客戶端(如Microsoft Outlook)可訪問的公用存儲中不受支持。

而生成錯誤請求404錯誤是因爲我沒有使用代理。所以我做了什麼,我評論了沒有使用任何代理的行,並添加了深度標題。

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

完整的C#代碼可以發現here