• ベストアンサー

[VB6.0] Inet OpenURLのエラー検出

VB6.0 InetコントロールでOpenURLを実行した時、404(File Not Found)等のエラーを検出する方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • taseki
  • ベストアンサー率66% (155/233)
回答No.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にしてあります。

matsu-td
質問者

お礼

GetHeaderで解決しました! ありがとうございました。

その他の回答 (1)

  • taseki
  • ベストアンサー率66% (155/233)
回答No.1

ResponseCode や ResponseInfo プロパティで取得できます。 ただ、StateChanged イベントを拾うために、Execute などを使う必要があると思います。

matsu-td
質問者

補足

早速のご回答ありがとうございます。やってみましたが、どうもうまく行きません。 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のパラメータがまずいのかな、と思っているんですが。。。 再度ご教授頂ければ幸いです。

関連するQ&A