ホームページ >バックエンド開発 >Golang >go http サーバーヘッダーの content-type は multipart/form-data に設定されていますが、クライアント側では Content-Type: text/plain が取得されます。

go http サーバーヘッダーの content-type は multipart/form-data に設定されていますが、クライアント側では Content-Type: text/plain が取得されます。

WBOY
WBOY転載
2024-02-12 22:57:081244ブラウズ

go http 服务器标头内容类型设置为 multipart/form-data 但在客户端获取 Content-Type: text/plain

ネットワーク開発では、多くの場合、HTTP リクエストを使用してデータを送信する必要があります。場合によっては、要求された content-type を multipart/form-data に設定し、クライアント側で text/plain の Content-Type を持つデータを取得する必要がある場合があります。このような設定は、HTTP サーバーのヘッダーで構成できます。 PHP では、対応する関数とメソッドを通じてこの目標を達成できます。この記事では、PHP で HTTP サーバーのヘッダーのコンテンツ タイプを multipart/form-data に設定し、クライアントで Content-Type が text/plain のデータを取得する方法を、PHP エディター Xigua が紹介します。

質問の内容

Go サーバーはヘッダー Content-type を multipart/form-data に設定します

リーリー

しかし、クライアント側では、

が得られます。 リーリー

ただし、ペイロードは本体内にあります

リーリー

しかし、コンテンツタイプがmultipart/form-dataではないため、パーツごとに取得できないため、これは機能しません

リーリー

私に足りないものは何ですか、ありがとう?

ps: この質問にはさらに詳細が必要でした。十分に明確だと感じたので、この行を追加しました。後で機能する可能性があります。

回避策

HTTP 応答ヘッダーは、応答本文に何かを書き込む前に設定する必要があります。ヘッダーが送信されると (応答本文に書き込むとき)、ヘッダーを設定または変更することはできません。

マルチパート ライターとすべてのパーツとコンテンツを作成し、応答ヘッダーを設定して、マルチパート ライターを閉じるだけです。クロージングは​​、マルチパート メッセージを完成させ、末尾の境界を書き込むだけですが、その内容の多くはすでに書き込まれ、コミットされている可能性があります。

マルチパート ライターに何かを追加/書き込む前に、設定ヘッダーを移動します:

リーリー

以上がgo http サーバーヘッダーの content-type は multipart/form-data に設定されていますが、クライアント側では Content-Type: text/plain が取得されます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。