2011-07-21 8 views
1

ほとんどの場合、レンダリングメソッドをオーバーライドしたり、WebClientを使用したり、HttpWebRequestを作成したりして、ASPXページからHTMLを取得する方法についての記事があります。これらのメソッドはすべて、ロードされたときにページのHTMLを返しますが、ユーザーが情報を入力した後に実際にHTMLを取得することを望んでいました。 これは私がITで働いていることです。ユーザーが例外に遭遇したときと同じように、ページに「スクリーンスクレープ」を実行するオーバーロードを持つログライブラリを構築しようとしています。例外をログに記録し、ロギングディレクトリのサブディレクトリにHTMLファイルを作成します.HTMLファイルには、「送信」をクリックするか、その他のランダムなエラーが発生する前にユーザーが見たと同じページが表示され、エラーに「ID」を追加しますどのページを見ているのかを誰にでも知らせるログを記録しています。ポストバックのASP.NETページからHTMLを取得する

私は実際にどこから始めたらいいか分からないので、十分な情報を提供したいと思っています。

また、私たちのロギングライブラリは私たちの共通ライブラリに含まれており、多くの一般的なライブラリ関数はロギングクラスを使用しているため、私たち自身のライブラリでこれを行いたいと思います。あなたは、彼らがページを使用してきた後、ユーザーが見ているものを見たい場合は

答えて

2

うーん...

、あなたが最も可能性の高いいくつかの空想のクライアント側のスクリプトを実行するために必要があるとしています。

単純なアプローチ:クリックすると、送信ボタンをDOMをコードするJavaScriptイベントを発生し、サーバーに、フォーム変数として渡し、又は符号化されたデータと別のAJAXリクエストを実行するのいずれか

パラメータ。 (この場合の「エンコード」はdocument.innerHtmlをつかむのと同じくらい簡単かもしれないが、私はチェックしていません。)

この潜在的にすべてのフォームの送信にオーバーヘッドのたくさんを紹介するので、私はそれを維持したいです生産コードの

例外ログの一部としてレンダリングされたHTMLが必要な理由がわかりません。サーバー側のデバッグには必要なことはありませんでした。

+0

フォームの送信ごとに、例外が発生したときだけ、それを使用することを選択した例外についてのみであることを意味します。また、ログには含まれませんが、ロギングディレクトリのサブディレクトリにある個々のHTMLファイルに含まれます。私はjavascriptを使って調べてみるが、最初に行う.NETメソッドがあるかどうかは分かると思った。 – Sivvy

+0

残念ながら、サーバー側で実行するまでサーバー側の例外が発生したかどうかはわかりません。その時点で、ログに記録するすべてのデータがあるかどうかはわかりません。あなたは毎回それを送る必要があります。例外が発生した後にブラウザに戻ってHTMLを要求することはできません。 –

+0

ありがとうございます。私はjavascriptのルートに行かなければならないと思う。私はjavascriptが好きですが、javascriptとASP.NETの間で変数を渡そうとしていません。 – Sivvy

0

ウェブサイトからHTMLコードを取得しています。このようなコードを使用することができます。

string urlAddress = "http://www.jobdoor.in"; 

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress); 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
if (response.StatusCode == HttpStatusCode.OK) 
{ 
    Stream receiveStream = response.GetResponseStream(); 
    StreamReader readStream = null; 
    if (response.CharacterSet == null) 
    readStream = new StreamReader(receiveStream); 
    else 
    readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet)); 
    string data = readStream.ReadToEnd(); 
    response.Close(); 
    readStream.Close(); 
} 
+0

ありがとうございますが、私はあなたが質問のポイントを見逃していると思います。 – Sivvy

関連する問題