問題タブ [http-put]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rest - RESTfulな部分更新を送信する方法は?
「RESTfulWebServices」の作者であるSamRubyは、部分的な更新にHTTP PUTを使用することに反対しているようです:http://intertwingly.net/blog/2008/02/15/Embrace-Extend-then-Innovate
明確ではないのは、部分的な更新をどのように行うべきかということです。彼のブログの下部近くでコメントしたように、HTTPPUTに対して「パッチドキュメント」を使用するよりもHTTPPATCHを使用する方が優れているかどうかは明らかではありません。
サムはHTTPPUTの誤用に反対していますが、HTTPPATCHの使用も支持していないようです。
RESTfulな部分更新をどのように送信する必要がありますか?
javascript - 「GET」と同様に、ローカル ファイルに対して「PUT」ajax 呼び出しを実行できますか?
file:// から HTML をロードし、HTML に相対 URL への AJAX 'GET' リクエストがある場合、URL がファイルを指しており、ファイルがロードされていることを意味します。
「PUT」で同様の動作を行うことはできますか? ファイルの内容を AJAX データで上書きするという意味ですか?
これが必要なのは、HTTP サーバーをセットアップしてスクリプトをホストし、要求された URL に応答する必要なく、スクリプトを簡単にデバッグできるようにするためです。
ありがとうございました
php - PHP で HTTP PUT 経由でファイルを送信する
この作業を行う方法を理解しようとして、私は数時間苦労してきました。HTTP-PUT 経由で eXist db にファイルを送信しようとしています。サーバーにはユーザー認証があるので、次のようなことをしようとしていました:
ドキュメントの PUT 先の URL を持っている eXist DB のユーザー名とパスワードを持っている PUT 経由で送信する必要があるコンテンツを持っている
cURL を使用しようとしましたが、黙って失敗しました。
これに関するヘルプは大歓迎です。
PHPストリームを使用して試したサンプルコードを次に示します
java - Java: HttpURLConnection を使用した HTTP PUT
HTTP PUT はどのように行うのですか? 私が使用しているクラスは、PUT を実行していると考えているようですが、エンドポイントは GET を実行したかのように処理しています。私は何か間違ったことをしていますか?
どちらが印刷されていますか:
これが機能する場合は、別のライブラリを含めたくありません...
http - REST APIの更新にPUTを使用する場合、完全な構造の送信を許可する必要がありますか?
私はRESTAPIを設計していますが、リソースの更新を処理するための推奨される方法は何でしょうか。具体的には、リソースでの更新を許可しますが、リクエストPUT
の本文で何を許可する必要がありますか?PUT
- 常にリソースの完全な構造ですか?
- リソースの構造の(変更された)サブパートは常にありますか?
- 両方の組み合わせ?
たとえば、リソースを取得しhttp://example.org/api/v1/dogs/packs/p1
ます。このリソースのAGET
は、次のようになります。
犬(Sniffers the Basset Hound)をパックに追加したい場合、次のいずれかをサポートしますか?
また
または両方?構造のサブセクションを通じて更新をサポートすることが推奨されている場合、削除(犬が死亡したときなど)をどのように処理しますか?クエリパラメータを介して?
php - POSTの代わりにPUTを使用したPHPアップロードファイル
PHPのドキュメントでこれについて何か読んだのですが、はっきりしていません。
最も広く使用されているブラウザ(IE、FF、Chrome、Safari、Operaなど)は、
PUT
ファイルをアップロードするためにこの方法をサポートしていますか?PUT
ブラウザがリクエストを介してサーバーを呼び出すようにするには、どのHTMLを作成する必要がありますか?FORM
つまり、INPUT
ファイルフィールドを使用してを記述し、属性method="POST"
を次のように置き換える必要がありますmethod="PUT"
か?PHPドキュメント(上記のリンク)では、ファイルをアップロードするとき
PUT
のリクエストはリクエストよりもはるかに単純であると述べていPOST
ます。この利点に加えて、他にどのようなメリット/デメリットがありPUT
ますPOST
か?
asp.net-mvc - HTTP PUT メソッド (ASP.NET MVC) の使用時に Request.Form が設定されない
HTTP PUT 要求の本文を処理しようとしていますが、MVC エンジン (またはおそらくそれを支える ASP.NET スタック) が、要求のフォーム コレクションを自動的に解析して本文データを入力していないようです。
これは、POST を実行するときに期待どおりに機能します。
リクエストの InputStream プロパティには期待されるデータが含まれていることに注意してください。明らかに、それを使用して独自のキー/値のコレクションを作成できますが、PUT が POST と同じように機能することを期待していました。
ここで何か不足していますか?
アクションメソッドの例:
php - PHP REST APIはどのようにしてPUTtedデータを受信できますか?
APIを作成していて、RESTアプローチに従いたいと思っています。私が理解しているように、APIユーザーに特定のレコードを更新させたい場合は、タイプリクエストをサポートする必要があります。もちろん、彼らはを行っておらず、新しいデータを渡す必要があります。私の質問は、これをどのように行うかです(私の特定のケースでは、指定されたレコードの一部のフィールドのみを更新しますが、ここではそれほど関係ありません)。私が考えることができる2つのアプローチがあります:リクエスト本文(curl:を使用)またはクエリ文字列(curl:を使用)にデータを含めることです。PUT http://server/specific_resource
GET
curl -X PUT -d "key=value" http://server/specific_resource
curl -X PUT http://server/specific_resource?key=value
残念ながら、私が取ったアプローチに関係なく、提供されたデータを取得するのは非常に難しいようです。問題は、PHPが2つのHTTPメソッドを完全に理解しているだけでGET
ありPOST
、ファイルのアップロード用とPUT
見なされていることです。本文にデータを含めると、データにアクセスする唯一の方法は、呼び出しを介するfopen('php://input')
ようです。たとえばhttp_get_request_body()
、データを提供しません。$_REQUEST
同様に、情報はスーパーグローバルで見つけることができません。生のリクエスト本文を処理する必要がない場合は、データがスーパーグローバルfopen('php://input')
の要素として表示されるため(データも)、クエリ文字列パラメーターとしてデータを送信する必要があるようです。$_GET
$_REQUEST
私は特にCakePHPを使用しており、リクエストがPOSTの場合にのみ、コントローラーメソッドに配列form
の配列を設定しているようです。クエリ文字列パラメータは、リクエストURLで使用されている場合、リクエストメソッドに関係なく'配列に配置されます。当然のことながら、これに遭遇したのは私だけではありません。params
params
url
あなたが提案する解決策は何ですか?入力ストリームを処理しますか?クエリ文字列パラメータを使用しますか?PUT
動詞を忘れてPOST
代わりに使用しますか?
java - プロトタイプを使用してHTTPPUTを呼び出すことは本当に可能ですか?
私はで実行JEE6
していて、にglassfish v3
取り組んNetBean6.9
でいRESTful web service
ます。
以下のjavascript関数を含むjspファイルがあります。
基本的にから情報を読み取りHTML input fields
、に変換しJSON format
ます。
次に、を使用してonclick Ajax call
、HTTPPUTメソッドを使用してJSON文字列を送信してみます。UPDATE
(つまり、RESTを使用してdbレコードを作成しようとしています)
私が使用しているjsフレームワークの場合はPrototype1.7
以下の関数をテストすると、常に404が返されるため、「問題が発生しました」というアラートが表示されます。
私の検索によると、1.5バージョンを超えるプロトタイプはHTTP PUT / DELETEメソッドをサポートしており、そうするために、私が行っているようにリクエストURLに_methodを追加します。
これにより、たとえば次のものが作成されます。
Firebugとコンソールを見て、リクエストが実際にPOSTであることを示しました。わかりませんが、これはPUTメソッドを実現するためにPOSTトンネリングを使用するプロトタイプによるものだと思いますか?
また、Ajaxが呼び出されていても、@ POSTで注釈が付けられたJAX-RSを含むJavaファイルは呼び出されていません(@GETバージョンは別のデータを処理しているため、これは正しいファイルです)。が表示されないので、Ajaxステートメントにバグがあるか、私の考えを超えた何かがあると思われます。誰かが私にヒントを与えることができますか?
http - 通常、HTTP PUT リクエストはどのように発行されますか?
定義によると、HTTP PUT は特定の URI に何かを格納するべき等の要求であることを知っています ( rfcから引用) 。
しかし、「囲まれた実体」の定義は何ですか? フォーム データ (HTTP POST 要求など) を送信することはできないようです。JSON/XML または他のシリアル化形式を介してエンティティの表現を送信するのはどうですか?
つまり、HTTP PUT リクエストを送信して、特定の URI で情報を保存/更新するにはどうすればよいでしょうか?