POST リクエストを作成し、それを別のサーバーに送信することでこれを実行しようとしています。私のプロセスでは、3 つの POST を送信しようとしています。1 つは最初のサーバーに、残りは別のサーバーに送信されます。 p>
ただし、これは 最初の POST リクエストに対してのみ機能し、残りのリクエストは 200 コードを取得しますが、ファイルはまだ空です。 http 接続に詳しくありません。プログラムを修正するにはどうすればよいですか? ご協力いただければ幸いです。
ファイルを受信する機能です。
リーリーこれはリクエストを作成して送信する関数です
リーリー動作しない機能もあります
func ReceivePublicKey() *gin.Engine { router := gin.Default() router.MaxMultipartMemory = 8 << 20 //router.Static("/", "./static") router.POST("/receive", func(context *gin.Context) { file, _ := context.FormFile("file") log.Println(file.Filename) dst := "./" + file.Filename context.SaveUploadedFile(file, dst) context.String(http.StatusOK, fmt.Sprintf("'%s' uploaded!", file.Filename)) context.String(200, "server: receive publicKey successfully!") }) return router }
さて、間違いが見つかりました。 まず、ファイルのサイズをチェックしませんでした。これが、空のファイルを保存するときにコード 200 を取得した理由の説明になります。 2 つ目は、IotInit() で userId を取得します。io.Copy() を使用し、ファイル ポインタが end of file を指すようにしました。これが、「public.pem」が空である理由を説明しています。コピーされたものは何も入れていません。リクエストボディに。また、POST リクエストの作成時に io.Copy() を使用していますが、「private.pem」も空である可能性があります。
以上がgin を使用する場合、1 つのプロセスで異なるサーバーにファイルを送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。