现在手头的项目,一直没有写用WebDAV的MKCOL 在Exchange 2K里创建Folder的方法,现在要用上了,今天准备补上。
照SDK里的Sample,Create了一个如下的Request:
MKCOL /pub2/folder1/folder2/ HTTP/1.1
Host: hostname
Content-Type: text/xml
Content-Length: XXX
<?xml version="1.0"?>
<g:propertyupdate xmlns:g="DAV:" >
<g:set>
<g:prop>
<g:displayname>value</g:displayname>
</g:prop>
<g:prop>
<f:myprop xmlns:f="urn:schemas-mydomain-tld:">Test</f:myprop>
</g:prop>
</g:set>
</g:propertyupdate>
但是却没有得到预期的Http Status 201 Created,Response Status Code 是 403 Forbidden
研究了半天,才发现原因是不能在MKCOL的时候设置DAV:displayname 属性,顺手换了个属性,改成:
<?xml version="1.0"?>
<a:propertyupdate xmlns:a="DAV:" xmlns:b="urn:schemas:exchange:solutions:MySolution:">
<a:set>
<a:prop>
<b:title>MySolution</b:title>
</a:prop>
</a:set>
</a:propertyupdate>
就OK了。
难道Exchange SDK里的Sample 是没有经过测试的?奇怪的说。