【C++】HTTP通信で大きいサイズのファイルを分割して送る
HTTP通信で大きいサイズのファイルを分割してPOSTする方法。
普通にPOSTする分には問題なかったのだけど、
送信したいファイルの内容を一度メモリに展開してから送る!ってやってたら、
700MBくらいですっ飛んだので、修正。
巨大サイズのファイルを扱う時っていつも注意が必要ですね。
WinHttpSendRequestで送るサイズを先に指定すれば、WinHttpWriteDataで分割して送信できるんだなぁ。
でも、サイズ指定部分がbyte数をDWORD型なので、
4GB(4,294,967,295byte)が限界!!
GB超えるファイルをHttpで送らないでと言いたい...(´・ω・`)
APIも色んな手順で使えるんだと知りました。ここの図が凄い分かり易かった!
WinHTTP Sessions Overview (Windows)
サンプルコードは以下。
CString系を多用しているのは好みと技術力の問題です。
エラー処理とか、解放漏れとかは無視して下さい。
基本的にはここを参考にさせていただきました。
http://eternalwindows.jp/network/winhttp/winhttp02.html