プロが教えるわが家の防犯対策術!

WinINet関数を使いVCプログラムしています。

HTMLをダウンロードしてきて、情報を解析しているのですが。

InternetOpen

InternetOpenUrl

InternetReadFile

手順で、HTMLの所得はできるのですが、

ユーザー認証がいるサイトの情報を取る方法がわかりません。
(例えば:mixi,facebookなど)

WinINet関数を使用してサイトにログインしてから、
指定のURLのHTMLを取得する様な感じだと思っているのですが、やり方がわかりません。


参考になる、サイト等知っている方がいましたら、教えて頂けると嬉しいです。

A 回答 (2件)

mixiだとBASIC認証じゃなくてフォームへ……ですね。



http://www.hiramine.com/programming/windows/http …
とか参考に……なりますかねぇ。
APIの使用順などは参考になると思いますが……。

フォームでログインするタイプだと、おそらくHTTPリクエストはPOSTになります。
# 実際のところはそのページのソースを確認するべきですが。
HTTPリクエストヘッダに
Content-Type: application/x-www-form-urlencoded
を追加して、HTTPリクエスト ボディでユーザー名やパスワードなどを送信することになります。
# どこにPOSTするのか…とか、HTTPリクエスト ボディに入れる必要のあるデータなどはページによる…ということに。

また、セッション管理などでCookieを使っていたりする場合は、その後の通信でもCookieの送受信なども必要になるでしょう。
VMWare上のUSVNへのログインだと…下記のような感じに……

POST /usvn/login/ HTTP/1.1
Host: 192.168.61.134
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20100101 Firefox/15.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://192.168.61.134/usvn/login/
Cookie: PHPSESSID=umhpt5qvd5dge8h026jkl5tpn7
Content-Type: application/x-www-form-urlencoded
Content-Length: 83

login=admin&password=123456789&submit=%E3%82%B5%E3%83%96%E3%83%9F%E3%83%83%E3%83%88
    • good
    • 0
この回答へのお礼

参考のサイト本当にありがとうございます。
サイトのサンプルを流用して、少し改造を加え、
欲しい情報の取得ができました。

本当に助かりました。ありがとう御座いました。

お礼日時:2012/09/24 23:20

「InternetOpenUrl 認証」辺りで検索すると見つかるんじゃないでしょうか。



InternetOpenUrl()の第3引数と第4引数で追加のヘッダ(HTTPリクエストヘッダ)が指定できます。
# HttpSendRequest()でもいいのでしょうが……

http://www.studyinghttp.net/auth
とか……。

>ユーザー認証がいるサイトの情報を取る方法がわかりません。
>(例えば:mixi,facebookなど)

SSLだとダメですが…WireSharkなどで実際のパケットを覗く…というのもアリかと思います。
    • good
    • 0
この回答へのお礼

Wr5様
アドバイスありがとうございます。
アドバイスに書いてあってURlの内容 HTTPアクセス認証について、サイトの方読みました。

ですが、私の力量不足なのか、問題の解決にいたっていまっせん。

HttpSendRequestなどを使用した、mixi等に対して認証(ログイン?)をする
イメージでいいのでしょうか?

あつかましいと思いますが、簡単なサンプルかなにかを教えていただけると嬉しいです。

お礼日時:2012/09/20 02:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!