2010-06-29 5 views
0

샘플 PROFIND 요청을 제공 할 수있는 사이트가 있거나 제공 할 수있는 사이트가 있습니다.WebDAV PROPFIND의 샘플 코드

MSDN에서 PROFIND 코드 샘플을 시도했지만 400 개의 잘못된 요청을 받았습니다.

왜 이런 일이 발생하는지 이해할 수 없습니다.

는 이전 Getting 400 Bad request from WebDav Server

의 질문 어떤 제안이 크게 도움이 될 것입니다을 기록했다.

편집

@Julian,

는 다음에 내 요청 본문을 업데이트 한 : RFC 4918, Section 9.1

에서 설명 된 바와 같이

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

하지만 난 여전히 나쁜 400를 얻고있다 요청 오류. M : 헤더가 없습니다. 다음 헤더 정보를 설정하는 것이 좋습니다.

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

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

추가로 설정하거나 지정해야합니까? 전체 코드는 내 Previosu 질문에 있습니다.

감사합니다,

Subhen

+0

here를 찾을 수 있습니다. RFC 4918에는 예제가 있습니다. 당신이 그들을 시도 했습니까? –

+0

@Julian, RFC 4918, 9.1 절을 시도했지만 여전히 400 오류가 발생합니다. 게시물을 업데이트했습니다. 감사합니다. – Simsons

+0

응답 본문 내용을 확인 했습니까? –

답변

4

나는 깊이 헤더 누락되었고, 그 이유로 웹 서버가 방법 허용되지 않음 오류를 반환하고 확인을 클릭합니다. 이 "무한대"의 깊이 값을 가진 PROPFIND는 Microsoft Outlook과 같은 MAPI 클라이언트에 액세스 할 수있는 공용 저장소에서 지원되지 않습니다

MSDN clearlystates.

그리고 프록시를 사용하지 않아서 잘못된 요청 404 오류가 발생했습니다. 그래서 내가 뭘했는지는 프록시를 사용하지 않는 라인을 주석 처리하고 깊이 헤더를 추가 한 것입니다.

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

완전한 C# 코드를 다시 정말 도움이되지 않습니다 같은 질문을 물어