400错误的请求我有以下PROFIND方法/请求WebDAV服务器:充分利用WebDAV服务器
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();
查询我从MSDN采取。我在strQuery
部分或其他地方做错了什么?
我得到400 - Bad request
。请帮忙 。
感谢,
Subhen
如果你详细说明了吗?我对此完全陌生 – Simsons 2010-06-28 15:47:18
元素由名称空间名称和本地名称定义;前缀是一个间接的级别,可能会有所不同。您可能应该阅读XML名称空间常见问题,并仔细查看您正在使用的XML API。 – 2010-06-29 12:51:16