我正在编写一个 REST WCF 服务,并让它适用于来自 C# 客户端的连接,但在通过 Delphi 2009 客户端连接时遇到问题。我遇到的问题是一个 PUT 请求,它看起来(目前)如下所示。它需要一个包含文档对象的 XML 请求。
[WebInvoke(UriTemplate = "Document/{id}", Method = "PUT", RequestFormat=WebMessageFormat.Xml)]
public void UpdateDocument (string id, Document document)
{
Document doc = document;
// this should update or something!
Console.WriteLine(doc.Id);
}
当我尝试通过我的 Delphi 客户端调用它时(如下所示),我收到一个“错误请求”。奇怪的是,如果我发送一个空文档,请求被接收,但显然没有数据。
...
msg := '<?xml version="1.0"?>' +
'<Document>' +
'<Id>123456788888</Id>' +
'</Document>';
XMLDocument1.LoadFromXML(msg);
xmlStream := TMemoryStream.Create;
idHttp1.Request.ContentType := 'application/xml';
XMLDocument1.SaveToStream(xmlStream);
url := 'http://localhost:50435/service1/Document/12345678';
result := idHttp1.Put(url, xmlStream);
ShowMessage (result);
...
任何想法,因为我现在有点迷路了!
谢谢