Web サイトが稼働しているか停止しているかをテストしようとしていますが、いくつか問題が発生しました。
最初に、サーバーのステータスをテストするかどうかは、次のような単純なコードで実行できることを知っています。
If My.Computer.Network.Ping(TextBox1.Text) Then
TextBox2.Text = "Online"
Else
TextBox2.Text = "Offline"
End If
しかし、Ping は、外部 Web サーバーが稼働しているかどうかを判断するための信頼できる方法であるとは限らないため、そうすることを拒否します。
だから私はこのコードを使用してこれを解決しようとします:
Try
Dim fr As System.Net.HttpWebRequest
Dim targetURI As New Uri(TextBox1.Text)
fr = DirectCast(System.Net.HttpWebRequest.Create(targetURI), System.Net.HttpWebRequest)
If (fr.GetResponse().ContentLength > 0) Then
TextBox2.Text = "Website appears to exist!"
Else
TextBox2.Text = "Website appears to have no content at all!"
End If
Catch ex As System.Net.WebException
TextBox2.Text = "Cannot connect - website not responding!"
End Try
そのコードは機能します。しかし、問題は、入力http://google.com
してTextBox1
サーバーのステータスを取得しようとすると、「Web サイトにはコンテンツがまったくないようです!」と表示されることがあります。http://google.com
オンラインでコンテンツがある場合でも。グーグルだけでなく、他のサイトも同様です。
このコードに関して 2 つの質問があります。
「Web サイトにはコンテンツがないようです」と表示されるのはなぜですか。いつでも、
http://google.com
または他のサイトがオンラインでコンテンツを持っていますか?TextBox1なしで、またはTextBox1
google.com
なしで、または任意のサイトを入力すると、エラーが表示されます。TextBox1 に入力された URL の先頭に、または自動的に追加できる方法はありますか?http://
https://
invalid URI format
http://
https://
これを上記のコードに追加して、それを行うことができることはわかっています。
Dim baseAddressx As String = "http://"
Dim targetURI As New Uri(baseAddressx & TextBox1.Text)
しかしhttp://google.com
、コード自体が追加されたときに入力するhttp://
と、問題が発生します。それを達成するためのより良い方法はありますか?