メニュー
Infomation
■お知らせ
[スパム対策]コメントにURLを含めると自動的に削除されます。
■このサイトについて
一応残していますが、全時代の遺物。全ての情報は古く役に立ちません 連絡先:メールアドレス
■日記更新情報
RSSRSS|RSS(本文のみ)|lirs
実験&リサーチ
巡回先
製作環境
 

 



2004|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|11|12|
2011|01|
2014|05|08|
2017|07|
2018|03|
2020|08|10|
2021|11|

2006年07月31日(Monday) [長年日記]

_ オフ会開催します

8月11日(金曜日)の夜にオフ会を開催したいとおもいます。

ぜひぜひご参加くださいませ。

話題は・・・よくわかりませんがマターリおしゃべりです。

詳しくはページ上のリンクの先をご覧くださいませ。

みなさんにお会いできるのを楽しみにしております。

今回は平日金曜とかなんで、はやめに人数決めたいでございます。。

_ JAXAヲチ

JAXA有人宇宙船構想 【毎日新聞】

有人で月とはまた夢のある。

いや、久々にいいニュースみた。

まぁ、色々政治的都合とかもあって大胆めなロードマップなんだろうけど。

まずはお金をガシガシつかって失敗しまくらないとどうしようもないですし。

_ WinInetAPIを利用してHTTPS(SSL)でフォームデータをPOST

先日全日空(ANA)のサイトから予約検索のプログラムを作ったときの話題。

全日空の運行便検索サイトはSSLなのですよね。

日本航空の予約サイトは暗号化なしなので楽なのですが。

そういえばIPNuts(ソフトウエアルータ)導入したときもEtherNetのMTUサイズの問題でANAのサイトだけ表示できない不具合が起きたのを思い出します。関係ないけど。


HTTPのプロトコルは単純なのでSSLでなければ自分で実装しても良いのですが、SSLとなるとちょっと面倒なのでWinInetを利用してみました。

WinInetの基本的な使い方な簡単ですが、どうも高級すぎて使いづらい。。

サンプルが見つかりそうでなかなか無かった(たぶんよく探せばあると思いますが)ので作ってみました。忘れないようにメモっときます。

といっても普通にHTTPファイルを取得するのとほとんど同じで要点だけ書くと、


・ポート番号を80(INTERNET_DEFAULT_HTTP_PORT)ではなく443(INTERNET_DEFAULT_HTTPS_PORT)にする。

・InternetConnectで、INTERNET_SERVICE_HTTPを指定する。

・HttpOpenRequestで、INTERNET_FLAG_SECUREを指定する。

【重要】フォームデータを送信したいので、HttpAddRequestHeadersを使って「Content-Type: application/x-www-form-urlencoded」を追加。

・HttpSendRequestExでリクエストを開き、InternetWriteFileでx-www-form-urlencodedしたフォームデータを書き込み、HttpSendRequestEx(HttpEndRequest)でリクエストを送信。

・InternetReadFileで受信したデータを取得


きちんと証明書が有効なサイトならこれでOKです。

デバッグ用に自己署名SSLなどを使うとエラーになります。

その場合はInternetQueryOptionでINTERNET_OPTION_SECURITY_FLAGSを読み取りセキュリティフラグを変更します。

具体的には「SECURITY_FLAG_IGNORE_UNKNOWN_CA」、「SECURITY_FLAG_IGNORE_CERT_CN_INVALID」、「SECURITY_FLAG_IGNORE_CERT_DATE_INVALID」を付加してInternetSetOptionします。

また、HTTPからHTTPSへリダイレクトされるのを許可するには「SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS」フラグを付けます。


サンプルコード:

wwwget_cpp(HTML)

wwwget.cpp(CPP)


最近のコメント

364,000 at 2008.06.14
Copyright (c) Suika KNOnline.NET