php エディタ Baicao は、Golang gin フレームワークで JSON データと画像を受け取る方法を紹介します。開発プロセスでは、フロントエンドから渡された JSON データや画像ファイルを処理する必要がよくあります。 Golang の gin フレームワークは、このデータを受信して処理するためのシンプルで使いやすいメソッドを提供します。この記事の導入部を通じて、gin フレームワークの構造体を使用して JSON データを受信する方法と、アップロードされた画像ファイルを処理する方法を学びます。一緒に探検しましょう!
リクエスト ハンドラーのコードがあります:
リーリーこのハンドラーの単体テストを行いました:
リーリーテスト中に次のエラーが発生しました: エラー #01: 数値リテラル
に無効な文字 '-' がありますこれはリクエスト本文です (log.print(req) を使用して出力します):
リーリーまず、json データとして文字列だけを取得し、それをバイトに変換します。エラーが発生したとき、json.marshalを使用してjsonデータを変換しましたが、成功しませんでした。 c.bindを使用してjsonデータを解析し、c.formfileを使用して指定された画像を解析したいのですが、これは可能ですか?
更新します。最初にアバターを取得し、次にバインド構造を通じて JSON を取得するコードを置き換えました。今、私はeofエラーを抱えています。
json データと画像ファイルを同時に受信する構造を定義できます (フィールド ラベルに注意してください):
リーリーmultipart/form-data
内の他のコンテンツ タイプを自動的に解析できますか? たとえば、xml
または yaml
。
現在の gin (@1.9.0) は、multipart/form-data
の xml
または yaml
を自動的に解析しません。 json
幸いなことに、ターゲット フィールドが構造体またはマップである場合、gin はたまたま json.unmarshal
を使用してフォーム フィールド値を解析します。 binding.setwithpropertypeを参照してください。
次のように自分で解析できます (updaterequest.event
はフォーム内の文字列値です):
(application/xml
リクエストの yaml
または application/x-yaml
リクエストの xml
と混同しないでくださいこれは、xml
コンテンツまたは yaml
コンテンツが multipart/form-data
リクエスト内にある場合にのみ必要です) .
multipart/form-data
からの json の読み取りには使用できません。ただし、--30b24345d...
のような境界から始まります。そのため、エラー メッセージ 数値リテラル '-' が無効です
というエラー メッセージが表示されて失敗します。
c.formfile("avatar") の呼び出しは機能しません。
c.formfile を呼び出すと、リクエスト本文全体が次のようになります。読む。
c.bindjson の後には読み取れるものはありません。そのため、eof エラーが表示されます。
単一の実行可能ファイルでのデモ を実行します
リーリー
###読んでくれてありがとう!
以上がGolang gin は JSON データと画像を受け取りますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。