[SML 7705] Re: HttpClientによるログイン認証について

久保田 吉彦 kubota @ sie.dendai.ac.jp
2009年 10月 27日 (火) 20:31:20 JST


電大の久保田です。

青木先生の助言で無事mixiにログインしてページ情報を得ること 
ができました。
ありがとうございました。

これでひと安心と思っていたのですがまた問題がでてきました。 
HTTPSでの通信です。
ニコニコ動画にログインするプログラムを書いてみました。

1)nicoLoginその1を使った場合Unhandled exception:  
NetHttpMovedError(302 Found)がでる。
2)nicoLoginその2を使った場合Unhandled exception:  
WSAECONNABORTEDがでる。

といった状況です。リダイレクトの設定はNet.Settings  
httpRedirectRequest: true.にしています。ネットワークプログラムは 
ほとんど書いたことがないので良く分らないのですが、1)の場合 
リダイレクト可の設定にしてあるのになぜExceptionが出るのか 
わかりませんまた、2)の場合HTTPでのmixiへのログ 
インが出きたのにHTTPSでの通信の場合なぜ 
WSAECONNABORTEDが出るのか分りません。どなたかご存知のかたいらっ 
しゃいませんか?
それともニコニコ動画のページはプログラムではログインできない作り 
になっているのでしょうか?

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 
ーー
"nicoLogin := 'https://secure.nicovideo.jp/secure/login? 
site=niconico'." "その1"
nicoLogin := 'https://secure.nicovideo.jp/secure/login_form'.  
"その2"
nicoTopPage := 'http://www.nicovideo.jp'.
inputUserName := 'email'.
inputPassword := 'password'.
inputNextURL := 'next_url'.

client := Net.HttpClient new.
client enableCookies: true.	
httpRequest := HttpRequest post:nicoLogin.
httpRequest
		userAgent: 'VW76NC';
		addFormKey: 'email' value: 'いーめーるあどれす';
		addFormKey: 'password' value: 'ぱすわーど';
		addFormKey: 'next_url' value:''.
httpResponse := client executeRequest: httpRequest. "<=ここで 
Net.HttpMovedError(302 Found)が発生"
httpRequest inspect.
agent :=client cookieAgent.
agent cacheCookies: true.

getMethod := HttpRequest get: nicoTopPage.
getMethod userAgent:'VW76NC'.
response := client executeRequest: getMethod. "<=ここで 
WSAECONNABORTEDが発生"
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 
ーー

久保田吉彦
東京電機大学 情報環境学部 情報環境学科

On 2009/10/27, at 15:47, AOKI Atsushi wrote:

> 久保田吉彦さんは書きました:
>> 青木先生のおっしゃった通り、デバッガを見たらエンコーダが入っ 
>> ている
>> IdentityDictionaryに'euc-jp'が入っていませんでした。そ 
>> のためKey not
>> foundのExceptionが出ているようです。
>
> だいぶ昔ですが、私も似たような状況に陥ったことがよみがえり、
> とっさに(脊髄反射で)、もしや!思ったのですが、当たりでした 
> か…。
>
>> 原因は判ったのですが、どう対処していいやら分りません。どなた 
>> か対処方法ご
>> 存知のかたいらっしゃいませんでしょうか。
>> #うーん、なさけない
>
> お使いの環境が Windows 版の VisualWorks ならば、
> エンコーディングシンボルの #euc-jp を
> #JapaneseEUC に写像すればいいと思います。
>
> VisualWorks の日本語版でなければ、Jpl を援用できます。
> http://www.cc.kyoto-su.ac.jp/~atsushi/Jpl/
>
> これまた久保田さんのコードを確かめもせずに、
> 応答しておりますので、とんちんかんなフォローやもしれませぬ。
> その際には、あしからず、ご容赦くださいませ。
>
> --- 青木淳@取り急ぎ



SML メーリングリストの案内