我正在做一些WebDAV,在我的PROPFIND调用后我做了类似的事情
var content = Encoding.UTF8.GetBytes(propfind.ToString());
httpWebRequest.ContentLength = content.Length;
httpWebRequest.ContentType = "text/xml";
// Get a reference to the request stream.
var requestStream = httpWebRequest.GetRequestStream();
requestStream.Write(content, 0, content.Length);
requestStream.Close();
using (HttpWebResponse response = (HttpWebResponse)httpWebRequest.GetResponse())
{
return response.StatusCode;
}
所以我得到了回来,这是一个207.据我所知,207是一个积极的事情,但我想正确检查并更智能地处理错误。
有谁可以告诉我如何更好地审问HttpWebResponse
以确认我的PROPFIND是否成功?
答案 0 :(得分:1)
您需要阅读响应正文(使用response.GetResponseStream()
)并解析XML,其中包含响应代码。
XML看起来像这样:
<?xml version="1.0"?>
<a:multistatus
xmlns:b="urn:uuid:c2f41010-65b3-11d1-a29f-00aa00c14882/"
xmlns:a="DAV:">
<a:response>
<a:href>http://server/public/test2/item1.txt</a:href>
<a:propstat>
<a:status>HTTP/1.1 200 OK</a:status>
<a:prop>
<a:getcontenttype>text/plain</a:getcontenttype>
<a:getcontentlength b:dt="int">33</a:getcontentlength>
</a:prop>
</a:propstat>
</a:response>
</a:multistatus>
(根据this page)