2010-06-29 7 views
0

Yat-il un site ou quelqu'un peut me fournir une demande d'échantillon de PROFIND s'il vous plaît.Exemple de code pour WebDAV PROPFIND

J'ai essayé l'exemple de code de PROFIND de MSDN mais obtenir 400 demande Bad.

Impossible de comprendre pourquoi cela se passe.

tition la question à Getting 400 Bad request from WebDav Server

Toutes les suggestions seront grandement utile.

Modifier

@Julian,

ont mis à jour mon corps demande à ce qui suit:

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

comme expliqué à RFC 4918, Section 9.1

mais je reçois encore 400 Bad Demande d'erreur M Je manque des en-têtes. Veuillez suggérer que je règle les informations d'en-tête suivantes:

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

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

Dois-je définir ou spécifier quelque chose de plus. Le code complet est dans ma question Previosu.

Merci,

Subhen

+0

Poser la même question n'est pas vraiment utile. La RFC 4918 a des exemples; les as-tu essayés? –

+0

@Julian, essayé avec RFC 4918, la section 9.1 et toujours obtenir l'erreur 400. Mise à jour du message Merci – Simsons

+0

Avez-vous vérifié ce que dit le corps de la réponse? –

Répondre

4

Ok je manquais l'en-tête de la profondeur et pour cette raison, le serveur Web retournais erreur Méthode non autorisée.

MSDN clearlystates que A PROPFIND avec une valeur de profondeur de « l'infini » est pas pris en charge dans le magasin public qui est accessible aux clients MAPI tels que Microsoft Outlook.

Et la mauvaise demande 404 erreur a été générée parce que je n'utilisais pas proxy. Donc ce que j'ai fait, j'ai commenté la ligne qui n'utilisait aucun proxy et ajouté l'en-tête de profondeur.

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

Le code complet C# peut être trouvé here