インディーズのTIdHttp
クラスは - 最近のバージョンで - Delete()
ルーチンを持っています。しかし何らかの理由で、これは手続きであり、関数ではありません。 Put()
、Get()
などは、すべて応答本体の内容を返す関数です。文字列として、またはTStream
に配信されています。これはDELETE
の定義に矛盾するDelete()
、では不可能である。TIdHttpでDELETEの応答テキストを取得するには?
成功応答があるべきである200(OK)応答アクションがなかった場合、ステータス、202(承認)を記述するエンティティを含む場合アクションが制定されているが、応答にエンティティが含まれていない場合は、204(No Content)となります。
私はその後GetResponse()
を使用してみましたが、それは代わりに、単に応答に入力せずに、優雅に私の接続を閉じました。
したがって、DELETE応答から応答本文の内容を読み取るにはどうすればよいですか?
?いずれにしても、回答テキストには何が期待されますか? ( 'ResponseCode'のテスト以外) – kobik
' TIdHttp.ResponseText'は明らかに私の考えではありませんでした。これは 'ResponseCode'と密接に関連しているので、200応答では、' TIdHttp.ResponseText'には実際のレスポンスボディではなく 'HTTP/1.1 200 OK'が含まれています。今のところ、私の仕事はデータなしで動作することができますが、削除したアイテムのIDだけを返していたので、正しいアイテムが削除されたことを確認できました。 – Svip
私は 'DELETE'メソッドを使ったことは一度もありませんでしたが、あなたはそのIDを応答ヘッダーに返すことができると思います。また、私はあなたがサーバーを制御していると仮定しています。なぜ、最初にDELETEメソッドを使用する必要があるのかよく分かりません。どうして 'GET'や' POST'を使うのではなく、リクエストパラメータにどのリソースを削除するのかを指定してください。 – kobik