質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

3回答

1748閲覧

あああああああああああああああああああああああああああああああああああああ

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2018/09/11 05:04

編集2018/09/19 03:16

ああああああああああああああああああああああああああああああ

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/09/13 08:21

質問者さんへのお願い。方針変更は結構ですが、そうした場合はその旨全回答者に通知してください。自分は質問にストレートに答えているわけですから、それをほっておくのはマナー的にどうかと思うのですが。
guest

回答3

0

DWebBrowserEvents2 インターフェイスの NavigateError イベントを WebBrowser を拡張して利用できるようにする方法があります。

完全なサンプルが以下の MSDN ライブラリにあります。

WebBrowser.CreateSink メソッド ()
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.webbrowser.createsink(v=vs.110).aspx

それにイベントハンドラをアタッチして質問者さんの必要なエラーコードが取得できないか試してみてください。

投稿2018/09/11 07:43

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

もう一つの質問 C# フォームを最前面には表示しない方法 を見ると、ダウンロードの自動化ツールを作っているように見えますが、これでわざわざ WebBrowser を使うことに疑問を感じます。
HttpClient クラス を使用する方がこの二つの質問には簡単に対処できます。

投稿2018/09/12 01:34

Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/09/12 02:35

回答ありがとうございます。 今回,WebBrowserで行ったのは WebBrowserからHttpClientにCookie情報の継承を私では質問等しても理解できる範疇を超えていると判断しました。 HTTPClientで自己証明書WEB(HTTPS)ページをログインしてダウンロードすることが簡単に出来る方法があるのであれば教えていただきたいです。 調べたところですと、Webbrowserでログインしてその情報をHttpClientに継承する形になるのでどちらにしてもWebbrowserは使わないといけないと現状では思っていますが間違いでしょうか。
Zuishin

2018/09/12 02:42

HttpClient でログインできないのですか?
退会済みユーザー

退会済みユーザー

2018/09/12 03:04 編集

今、WEBページの具体的なソースを記載しました。 HttpClientでログインしている方はベーシック認証等を使っているのは見かけましたが、 Webbrowserコントールではメインページに接続後、 HtmlWindow iframe = webBrowser1.Document.Window.Frames[0]; HtmlElementCollection elements = iframe.Document.All; HtmlElement id = elements.GetElementsByName("userName")[0]; HtmlElement pw = elements.GetElementsByName("pwd")[0]; //ID・passを入力 id.InnerText = textBox1.Text; pw.InnerText = textBox2.Text; 上記の様にしているのですが、HttpClientでログインする方法が分からなかったので断念してしまっていました。 もしやり方等教えていただけるのであれば知りたいです。
退会済みユーザー

退会済みユーザー

2018/09/12 03:44

ありがとうございます。 クッキー情報は表示されていましたが、 Cookie: temp=temp; curUrl=systemStatusView.html; curUsr=admin; SessId=2BDDB1D82DD548D96AF61FCB0C532213; PageSeed=fc4baa8dfda9f6a67e0a830f1878d243 URL記載の様に何を送っているかなどは何度行っても表示されませんでした。 そういった場合もあるのでしょうか。
退会済みユーザー

退会済みユーザー

2018/09/12 04:03

実施してみた感じですとauth.cgiに飛ばされているのがポイントになるのでしょうか。
Zuishin

2018/09/12 05:49

パスワードが含まれているのに get ということは無いと思うんですが、こっちでは確かめられないので何とも言えませんね。 余計なことを言いました。
guest

0

私はC#はやっておりませんので、わかりませんが、単純に考えて、

リクエストする等のようなメソッドで取得するときの戻り値や例外で分離する」が考えられますね。

例えば妄想ですが、

String request( URL );

とあったら、戻り値のStringに "404エラー(not found)" が含まれていたら 接続失敗なんだなぁとか。

String request( URL ); // 失敗すると SocketMissingExcptionが投げられる

みたいな状態なら、SocketMissingExcptionが投げられたら失敗とみなすとか。

これらが不可能な場合は、私ならSocketとかで取得する前に オンラインかどうか とかみたいなチェックを入れて、それがOKなら 次のステップとして実際に表示したりする。(チェックでの)失敗時は「独自のページを表示する」とかみたいな例外があったときのような処理をする。

でしょうかね。

投稿2018/09/11 05:16

BeatStar

総合スコア4958

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問