- ベストアンサー
[VB6.0] Inet OpenURLのエラー検出
VB6.0 InetコントロールでOpenURLを実行した時、404(File Not Found)等のエラーを検出する方法はありますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
すみません、ResponseCode や ResponseInfo はクライアント側のエラーでした。 GetHeaderでHTTPレスポンスのヘッダを取得できます。 HTTPヘッダの1行目がHTTPステータスなので、「HTTP/1.0 404 Not Found」などが入ります。 以下を試してみてください。 ----------------------------------- Private Sub Command1_Click() Dim strURL As String '存在しないアドレス strURL = "http://www.msn.co.jp/hadfhg.htm" Inet1.OpenURL strURL Debug.Print Inet1.GetHeader End Sub ----------------------------------- ※存在しないURL「http://www.msn.com/hadfhg.htm」は、msn.comサーバーの仕様なのか、なぜかバイナリデータを返してくるようです。 バイナリを受け取るようにすれば良いと思いますが、上記ではとりあえずmsn.co.jpにしてあります。
その他の回答 (1)
- taseki
- ベストアンサー率66% (155/233)
ResponseCode や ResponseInfo プロパティで取得できます。 ただ、StateChanged イベントを拾うために、Execute などを使う必要があると思います。
補足
早速のご回答ありがとうございます。やってみましたが、どうもうまく行きません。 FormにCommandButton(Command1)、Inet(Inet1)を配置 ↓ソース(見栄え上、全角スペースを入れてあります) Private Sub Command1_Click() Dim strURL As String '存在しないアドレス strURL = "http://www.msn.com/hadfhg.htm" Call Inet1.Execute(strURL, "GET") End Sub Private Sub Inet1_StateChanged(ByVal State As Integer) Debug.Print "event received(" & _ State & ") [" & _ Inet1.ResponseInfo & "," & _ Inet1.ResponseCode & "]" If State = 12 Then 'icResponseCompleted Inet1.Cancel End If End Sub ↓Command1クリック後、イミディエイトウィンドウ出力結果 event received(3) [,0] event received(4) [,0] event received(5) [,0] event received(6) [,0] event received(7) [,0] event received(8) [,0] event received(12) [,0] event received(9) [,0] event received(10) [,0] Executeのパラメータがまずいのかな、と思っているんですが。。。 再度ご教授頂ければ幸いです。
お礼
GetHeaderで解決しました! ありがとうございました。