HTTP Get 機能、なんとなく実装成功



現在デバッグ中だが一応 HTTP GET というかウェブサーバへページの取得しにいく関数は実装完了。

実際にページを取得しに行くと本家の Get Object と比較してレスポンスが悪かったのだけど、これも送信・受信バッファをこれまでの四倍程度にアップし確保したら解決できた。

複数回に分けて小さなパケットを送信するよりも、適切な設定でバッファを確保して一括送信受信できるようにした方がオーバーヘッドが減るみたい。メモリが少ないモバイル環境ではまた別なんだろうけど、PC用なら贅沢にバッファを確保しても問題ないと思う。やり取りするデータの必要性に応じてバッファを小さくしたり大きくしたり自分で最適化することもできる。

本家の Get Object が日本語ページ取得しに行くと化ける理由

このあたりははっきり原因が分かった。ウェブサーバから受け取ったマルチバイト文字列の文字エンコードを全て ANSI か何かで固定してワイド文字へ変換してるか何かだと思う。

エクステとしては立派にユニコード対応できてるけど、ウェブ側の文字エンコードが ANSI 以外のケースを想定してないから、UTF-8 の文字列などを渡されるとそこで化ける。文字エンコードの自動判別はエクステ内部に仕込みが必要なのと、動作確認が結構めんどくさいはず。

自分で作る場合は文字エンコードが確定しているので、指定文字エンコードをワイド文字へ変換する処理を挟んでいる。こうすると日本語が表示できる。

Leave a comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です