COPY的WebDav HttpRequest消息。它形成得很好吗?

时间:2015-11-05 15:15:48

标签: c# .net http webdav bad-request

传递以下httprequest消息以在WebDavServer上执行文件的COPY会返回错误请求'回复消息。我无法弄清楚请求消息中是否有遗漏或错误。

HttpRequest消息:

{Method: COPY, RequestUri: 'https://testaddress.de:8000/Test/TextDoc.txt',
 Version: 1.1, Content: System.Net.Http.ByteArrayContent, Headers:
{
  Connection: Keep-Alive
  User-Agent: WebDAVClient/1.0.0.0
  Destination: file:///C:/Users/user/TestCenter/Scan/TextDoc.txt
  Content-Type: text/xml
}}

响应是:

{StatusCode: 400, ReasonPhrase: 'Bad Request', 
 Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
  Persistent-Auth: true
  Date: Thu, 05 Nov 2015 15:05:14 GMT
  Server: Microsoft-IIS/8.5
  X-Powered-By: ASP.NET
  Content-Length: 24
  Content-Type: text/html
}}

如果有人能指出我正确的方向,我将不胜感激。

更新 有人向我指出,COPY仅在目标位于同一服务器上时才有效,而不是目标是本地系统中的路径。如果将远程文件复制到本地位置,则需要使用GET请求并使用响应流将数据写入本地路径。 感谢@Julian Reschke和@Brian Warshaw

2 个答案:

答案 0 :(得分:2)

“目标”标题字段必须是URI,而不是文件名。

答案 1 :(得分:0)

如果您尝试将远程文件复制到本地位置,则需要使用GET请求并处理使用响应流将数据写入本地路径。