過去ログを参照したところ、Inetコントロールで
HTTP通信では、テキストデータしか送信できないとありました。
これは本当ですか?
今回、この仕様でバイナリデータ送信を行う予定でしたが、
できないのであれば他の仕様に(Winsock等)置き換えも
考えなければならないのですが。
HTTP通信でデータを送ること自体、無理だったと思いますけど…。
(できるサーバーも存在するとかいう話は聞いたことありますけど…)
できるとしたら、そういう仕組みが用意されたCGIを呼び出すことくらいです。
FTP通信を使いましょう。FTP通信もWinInetはサポートしてます。
たかみちえさん、ありがとうございます。
Inet.ExecuteでPOSTを使用して、dataをバイナリで
送信しようと考えていたのですが、やはりFTP通信が妥当なのでしょう
か。FTPだとセキュリティが心配だからと言われてしまい、今回このよ
ような策を考えました。
FTP通信を主体に切り替えて考えたいと思います。
> FTPだとセキュリティが心配だからと言われてしまい
確かにFTPは、パスワードがばれてしまえばおしまいですけど、
パスワードもなしにファイルが転送できたら、それこそ危険だと思います(^^ゞ
パスワードが他人に推測しづらくて、ファイルに保存するときは暗号化しておけば、十分なんじゃないでしょうか?
あとは、インターネット上にファイルアップロード用のCGIを設けて、
そこにローカルのファイル名を送り、CGIから取り寄せてもらうという方法もありますけど。
汎用性はまったくないですね。
HTTPでバイナリデータを送ることは可能です。
POSTということは、HTTPサーバに対して送りたい、ということだと
思いますが、受信後の扱いはHTTPの問題でなく、
POSTで指定したURLに実装された機能の問題です。
POSTされたデータを(どこかのディレクトリに)保存したかったら、
そういうしくみを受信側に実装してください。
とはいえ、バイナリデータの送受信にはFTPのほうが
適しているのは事実です。
>FTPだとセキュリティが心配だからと言われてしまい、
インターネットでFTPといえばアノニマス(Anonymous=匿名)FTPを
さすようですが、本来のFTPはアカウントがないと利用できません。
セキュリティが心配なら、アノニマスでない通常のFTPにすればいいのでは?
また、パケット盗聴が心配なら、暗号化すればいいだけのことです。
たかみちえさん、Sayさんありがとうございます。
FTPでのセキュリティを十分考慮したかたちで、解決しました。
バイナリデータをファイルから読み込み(BYTE配列へ)これを
文字列(String)に変換等も試みましたが、StrConvで
の一括変換では値が変わってしまうデータがあり、Chrでの一文字
ずつ変換ではデータ量が多い為、時間がかかりすぎるとういうことで
あきらめました。
>バイナリデータをファイルから読み込み(BYTE配列へ)これを
>文字列(String)に変換等も試みましたが、
テキスト/バイナリ相互変換なら、Ishで可能です。
統合アーカイバプロジェクトあたりでish32.dllについて
調べてみてください。