私は 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 クライアント経由でこれを呼び出そうとすると (以下に示すように)、「Bad Request」が表示されます。奇妙なことに、空のドキュメントを送信すると、リクエストは受信されますが、明らかにデータがありません。
...
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);
...
私は今少し迷っているので、どんなアイデアでも!
ありがとう