ポストバイナリデータ(アプリケーション/オクテットストリーム)
コンテンツ タイプを application/octet-stream に設定し、リクエストにファイルのバイナリ データを設定してファイルをアップロードしたい体。 golang でこれを行うにはどうすればよいでしょうか。開始コードは次のとおりです:
package main import ( "fmt" "log" "net/http" "net/http/httputil" "os" ) func main() { file, err := os.Open("file.pdf") if err != nil { log.Fatalln(err) } req, err := http.NewRequest("POST", fmt.Sprintf("https://example.com/upload"), nil) req.Header.Add("Content-Type", "application/octet-stream") if err != nil { log.Fatalln(err) } client := &http.Client{ Transport: &http.Transport{ DisableCompression: true, }, } resp, err := client.Do(req) if err != nil { log.Fatalln(err) } defer resp.Body.Close() reqDump, err := httputil.DumpRequest(req, true) if err != nil { log.Fatalln(err) } fmt.Println(reqDump) }
正解
問題の解決に役立つ可能性のある回答をまとめました。すべてのコードは main.go
ファイルに属しており、デモンストレーションのみを目的としています。これには、handler
関数と main
関数という 2 つの主要な部分があります。ハンドラーから始めましょう。
http ハンドラー
リーリーここでは、あなたが使用しているものにのみ依存しています (標準ライブラリのみを使用してください: http
、io
、および fmt
パッケージ)。 http リクエストから読み取られた受信ペイロードを応答ストリームに書き込むだけです。
主な機能
リーリー対照的に、main
関数には、処理するロジックがさらに多くあります。リストでそれらを確認してみましょう:
- 受信リクエストを処理する http サーバーを作成します。前に作成した
handlefile
ハンドラーを使用して、/example
エンドポイントのリクエストに応答するように装備します。 -
sync.waitgroup
を使用して、別の goroutine でサーバーを実行します。このおかげで、サーバーは稼働していますが、プログラムを続行してその中で http リクエストを送信できます。 - ローカル ファイル システムから読み取られたファイル (この例では
file.txt
) の内容を含む http リクエストを準備します。content-type
ヘッダーをapplication/octet-stream
に設定し、ファイル ハンドルをnewrequest
関数に渡します。 - リクエストを作成し、http 応答ペイロードの内容を出力します。
- サーバーをシャットダウンし、
wg.wait
メソッドを使用して、waitgroup にすべてのゴルーチンを待機するように指示します。
最終考慮事項
ここに書かれたコードは間違いなく改善できるはずです。とにかく、デモンストレーションのために、http サーバーでバイナリを公開する方法と、クライアントとサーバーの両方で同じプログラムを実行する方法をよりよく理解できるように、できるだけ元のファイルに近づけたいと思います。何かご不明な点がございましたら、教えてください、ありがとうございます!
以上がポストバイナリデータ(アプリケーション/オクテットストリーム)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









C++ で絶対値を取得するには、次の 2 つの方法があります。 1. 組み込み関数 abs() を使用して、整数または浮動小数点型の絶対値を取得します。 2. 汎用関数 std::abs() を使用して、サポートされているさまざまな絶対値を取得します。データ型の絶対値を操作します。

std は、標準ライブラリのコンポーネントを含む C++ の名前空間です。 std を使用するには、「using namespace std;」ステートメントを使用します。 std 名前空間からシンボルを直接使用するとコードを簡素化できますが、名前空間の汚染を避けるために必要な場合にのみお勧めします。

prime は C++ のキーワードで、1 とそれ自体でしか割り切れない素数の型を示し、指定された値が素数であるかどうかを示すブール型として使用されます。 true、それ以外の場合は false。

複素数型は、C 言語で実数部と虚数部を含む複素数を表すために使用されます。その初期化形式は complex_number = 3.14 + 2.71i で、実数部は creal(complex_number) を通じてアクセスでき、虚数部は cimag(complex_number) を通じてアクセスできます。この型は、加算、減算、乗算、除算、剰余などの一般的な数学演算をサポートします。さらに、cpow、csqrt、cexp、csin など、複素数を処理するための一連の関数が提供されています。

fabs() 関数は、浮動小数点数の絶対値を計算し、負の符号を削除して正の値を返す C++ の数学関数です。浮動小数点パラメータを受け入れ、double 型の絶対値を返します。たとえば、fabs(-5.5) は 5.5 を返します。この関数は浮動小数点数を処理しますが、その精度は基盤となるハードウェアによって影響を受けます。

Config は Java の構成情報を表し、通常は外部ファイルまたはデータベースに保存され、Java プロパティ、PropertyResourceBundle、Java 構成フレームワーク、またはサードパーティ ライブラリを通じて管理できます。その利点には、分離と柔軟性が含まれます。環境意識、管理性、拡張性。

C++ の min 関数は、複数の値の最小値を返します。構文は次のとおりです: min(a, b)、a と b は比較される値です。 < 演算子をサポートしない型をサポートする比較関数を指定することもできます。 C++20 では、3 つ以上の最小値を処理する std::clamp 関数が導入されました。

C++ で絶対値を求める方法は 3 つあります。 abs() 関数を使用すると、あらゆるタイプの数値の絶対値を計算できます。 std::abs() 関数を使用すると、整数、浮動小数点数、および複素数の絶対値を計算できます。絶対値の手動計算。単純な整数に適しています。
