ファイルと関連データを JSON 形式で RESTful WebService に投稿します
P粉056618053
P粉056618053 2023-08-20 13:47:10
0
2
611
<p>私が開発しているアプリケーションでは、クライアントから JSON 形式でデータを送信する必要があるため、RESTful API を開発しています。アプリケーションの一部では、クライアントがファイル (通常は画像) とその画像に関する情報をアップロードする必要があります。 </p> <p>これを 1 つのリクエストで実現する方法を追跡するのに苦労しています。ファイルデータをBase64でJSON文字列にエンコードすることは可能ですか?サーバーに対して 2 つの POST リクエストを実行する必要がありますか?これを処理するには JSON を使用すべきではないでしょうか? </p> <p>また、バックエンドで Grails を使用しており、その情報が異なる場合は、ネイティブ モバイル クライアント (iPhone、Android など) からこれらのサービスにアクセスできます。 </p>
P粉056618053
P粉056618053

全員に返信(2)
P粉994092873

multipart/form-data コンテンツ タイプを使用して、1 つのリクエストでファイルとデータを送信できます:

http://www.faqs.org/rfcs/rfc2388.htmlより:

各境界間の各セクションにファイル情報またはフィールド情報を含めることができます。ユーザーにデータとフォームの送信を要求する RESTful サービスを正常に実装できました。multipart/form-data は完全に機能します。このサービスは Java/Spring を使用して構築され、クライアントは C# を使用するため、残念ながら、サービスのセットアップ方法を説明する Grails の例はありません。この場合、各「form-data」セクションでパラメーター名とその値を指定する場所が提供されるため、JSON を使用する必要はありません。

multipart/form-data を使用する利点は、HTTP によって定義されたヘッダーを使用するため、既存の HTTP ツールを使用してサービスを作成するという REST 哲学に従うことです。

いいねを押す +0
P粉145543872

私もここで同様の質問をしました:

REST Web サービスを使用してメタデータを含むファイルをアップロードするにはどうすればよいですか?

基本的には 3 つのオプションがあります:

  1. Base64 はファイルをエンコードしますが、データ サイズが約 33% 増加し、サーバーとクライアントでのエンコード/デコード処理のオーバーヘッドが追加されます。
  2. まず、multipart/form-data の形式でファイルを送信し、ID をクライアントに返します。次に、クライアントはその ID を使用してメタデータを送信し、サーバーはファイルとメタデータを再度関連付けます。
  3. 最初にメタデータを送信し、ID をクライアントに返します。次に、クライアントはその ID を使用してファイルを送信し、サーバーはファイルとメタデータを再度関連付けます。
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート