
Question:
I have the following PROFIND method/request to WebDav server :
strQuery = "<?xml version=\"1.0\"?><a:propfind xmlns:a=\"DAV:\">"; strQuery += "<a:prop><a:getcontenttype/></a:prop>"; strQuery += "<a:prop><a:getcontentlength/></a:prop>"; strQuery += "</a:propfind>"; // Create a new CredentialCache object and fill it with the network // credentials required to access the server. MyCredentialCache = new System.Net.CredentialCache(); MyCredentialCache.Add(new System.Uri(strRootURI), "Basic", new System.Net.NetworkCredential(strUserName, strPassword));//, strDomain) // Create the HttpWebRequest object. Request = (System.Net.HttpWebRequest)HttpWebRequest.Create(strRootURI); Request.Proxy = GlobalProxySelection.GetEmptyWebProxy(); // Add the network credentials to the request. Request.Credentials = MyCredentialCache; // Specify the method. Request.Method = "PROPFIND"; // Encode the body using UTF-8. bytes = Encoding.UTF8.GetBytes((string)strQuery); // Set the content header length. This must be // done before writing data to the request stream. Request.ContentLength = bytes.Length; // Get a reference to the request stream. RequestStream = Request.GetRequestStream(); // Write the SQL query to the request stream. RequestStream.Write(bytes, 0, bytes.Length); // Close the Stream object to release the connection // for further use. RequestStream.Close(); // Set the content type header. Request.ContentType = "text/xml"; // Send the SEARCH method request and get the // response from the server. Response = (HttpWebResponse)Request.GetResponse(); // Get the XML response stream. ResponseStream = Response.GetResponseStream(); // Create the XmlTextReader object from the XML // response stream. XmlReader = new XmlTextReader(ResponseStream); // Read through the XML response, node by node. while (XmlReader.Read()) { // Look for the opening DAV:href node. The DAV: namespace is //typically assigned the a: prefix in the XML response body. if (XmlReader.Name == "a:href") { // Advance the reader to the text node. XmlReader.Read(); // Display the value of the DAV:href text node. Console.WriteLine("Value: " + XmlReader.Value); Console.WriteLine(""); //Advance the reader to the closing DAV:href node. XmlReader.Read(); } } // Clean up. XmlReader.Close(); ResponseStream.Close(); Response.Close();
The Query I have taken from MSDN . Am I doing something wrong in the strQuery
section or somewhere else?
I am getting 400 - Bad request
. Please help .
Thanks,
Subhen
Solution:1
Also, code that relies on prefix names instead of namespace names is unlikely to work with other servers...
Solution:2
Although I'm not fully sure, but I think you're supposed to put multiple properties in a single instead of multiple elements.
Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
EmoticonEmoticon