2010-12-01 28 views
0

HttpWebRequestを使用して、以下のWebサイトにログインしようとしています。私はCredentialsプロパティを使用してユーザー名とパスワードを渡していますが、WebサイトのLoginページを取り戻しています。誰でも私が間違っていることを説明することはできますか?HttpWebRequestを使用してWebページにログイン

https://oyster.tfl.gov.uk/oyster/entry.do(ログインページ)

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(Url); 
request.ContentType = "application/x-www-form-urlencoded"; 
request.Credentials = new NetworkCredential(Username, Password); 
request.Method = "POST"; 
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; 
request.Headers.Add("Accept-Language: en-us,en;q=0.5"); 
request.Headers.Add("Accept-Encoding: gzip,deflate"); 
request.Headers.Add("Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"); 
request.KeepAlive = true; 
request.Headers.Add("Keep-Alive: 300"); 
request.Referer = Url; 
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705;)"; 

HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

using (StreamReader reader = new StreamReader(response.GetResponseStream())) 
{ 
    string tmp = reader.ReadToEnd(); 
} 
+0

(あなたの行動は、TFLの契約条件に違反して表示されますが、私が最初にそれを見てしまう...) –

答えて

1

ノートTerms and Conditions

禁止されている以下の[...スニップ...]任意の自動化システムの

使用、ソフトウェア またはコンテンツを抽出する処理、および/またはトローリング、データマイニングを含む データ とスクリーンスクレイピング。 ないフォームベースのセキュリティ -

Credentialsは基本的に/ etc HTTPセキュリティのためです。

APIがあれば使用する方がよいでしょう。 HTMLフォームは、コンピュータではなく、人間のためのものです。 beta TfL API hereがあるようです。

0

このページにはHTTP認証(Basic、Digest、NTLM)がないため、認証情報は何も行いません。

コンテンツとしてユーザー名とパスワードを送信する/oyster/security_checkへのPOSTを構成する必要があります(送信するデータは、フォームがGETの場合はクエリー文字列に表示されるものと同じに見えます、例:username=myName&password=myPass)。後続の要求のために、このから。ここで

+0

(これはサイトの条件に違反することに注意してください; P) –

+0

@Marcまあ、それはですログインするのではなく、禁止する権利を主張し、法廷に立つことができないと主張する内容を使用して、米国で保留中の問題について最高裁判所の控訴があることを知っているアイルランド、デンマークの間に皮肉なことに、「ディープリンク」を部分的に禁止する国(「深いつながり」とは考えられない愚かな決定)は、少なくともいくつかの用途で掻き分けても問題ありませんでした。また、Googleのキャッシュはすでにあなたがログインする必要はありませんコンテンツの多くを掻いている。とにかく、我々は技術的な質問に答えました。 –

0

あなたは非常に便利かもしれませんC#クラスである。

それは使用することが非常に簡単だし、文字列またはバイト配列をダウンロードするための基本的な機能を持っている。また、ログインページのフォームをスキャンいくつかのウェブサイトがプログラム認証を防ぐために使用する認証トークンのようなものについては、私はFacebそれはうまくいくようです。

[リンクを削除]

関連する問題