郁闷了一天:如何将这段javascript代码改写成vb.net代码.
想把下面的javascript写成vb.net代码以便在窗体程序中运行.
<html>
<head>
<title>利用XMLHTTP检测网址及探测服务器类型</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Generator" content="Microsoft FrontPage 6.0">
<meta name="Author" content="JnKc">
<meta name="Keywords" content>
</head>
<body>
<input type="text" id="jnkcInput" value="http://www.csdn.net" size="50">
<button id="chk">检测</button>
<div id="jnkc_show">
</div>
<script language="VBScript">
Dim i,jnkcUrl,jnkcHTML,jnkcStatus,jnkcServer
Function chk_onClick()
jnkcUrl = jnkcInput.value
Call GetDetail
i = i+1
jnkc_show.innerHTML = "<hr><pre><font color=red>" & i & "、" & jnkcUrl & "</font><br/>" & jnkcStatus & "</pre>" & jnkc_show.innerHTML
End Function
Dim jnkcXMLHTTP
Sub GetDetail
Set jnkcXMLHTTP = CreateObject("Microsoft.XMLHTTP")
jnkcXMLHTTP.OnReadyStateChange = GetRef("GetStatus")
jnkcXMLHTTP.Open "GET", jnkcUrl, False
On Error Resume Next
jnkcXMLHTTP.Send
Set jnkcXMLHTTP = Nothing
End Sub
Sub GetStatus
If jnkcXMLHTTP.ReadyState <> 4 Then
Exit Sub
End If
If jnkcXMLHTTP.Status = 404 Then
jnkcStatus = "该网页不存在!"
ElseIf jnkcXMLHTTP.Status < 200 Then
jnkcStatus = "客户端错误,信息:" & CStr(jnkcXMLHTTP.Status) & " " & jnkcXMLHTTP.StatusText
ElseIf jnkcXMLHTTP.Status < 300 Then
jnkcStatus = "成功,该网页能访问。"
ElseIf jnkcXMLHTTP.Status < 400 Then
jnkcStatus = "重定向,信息:" & CStr(jnkcXMLHTTP.Status) & " " & jnkcXMLHTTP.StatusText
ElseIf jnkcXMLHTTP.Status < 500 Then
jnkcStatus = "客户端错误,信息:" & CStr(jnkcXMLHTTP.Status) & " " & jnkcXMLHTTP.StatusText
ElseIf jnkcXMLHTTP.Status < 600 Then
jnkcStatus = "服务器错误,信息:" & CStr(jnkcXMLHTTP.Status) & " " & jnkcXMLHTTP.StatusText
Else
jnkcStatus = "域名不可用或网络连接错误,信息:" & CStr(jnkcXMLHTTP.Status) & " " & jnkcXMLHTTP.StatusText
End If
If jnkcXMLHTTP.Status < 600 Then Call GetServer
End Sub
Sub GetServer
jnkcServer = jnkcXMLHTTP.GetResponseHeader("Server")
If jnkcServer <> "" Then
jnkcStatus = jnkcStatus & "<br/>HTTP服务器:" & jnkcServer
End If
jnkcStatus = "<b>" & jnkcStatus & "</b><br/>所有反馈信息:<br/>"& jnkcXMLHTTP.GetAllResponseHeaders
End Sub
</script>
</body>
</html>
问题点数:20、回复次数:7Top
1 楼lovefootball(蟑螂(生活就是扯淡--做人要放低姿态))回复于 2005-06-02 20:12:54 得分 0
不好意思,我没看到jsTop
2 楼wqdzgh(红螃蟹)回复于 2005-06-02 20:46:04 得分 0
汗,是vbsTop
3 楼rzpc(淡蓝色)回复于 2005-06-02 21:37:57 得分 0
虽然是VBS,不过 要把这段代码移植到VB.net Windows Form上,好有一比呀:
--------- 好比把猪肝安到鱼肚子里啊!Top
4 楼redmoonmoon(阿卓)回复于 2005-06-02 21:58:40 得分 0
呵呵,用System.Web.HttpResponse.Write方法吧,多简单Top
5 楼net_lover(【孟子E章】)回复于 2005-06-02 21:59:13 得分 0
http://dotnet.aspx.cc/ShowDetail.aspx?id=4AE836F8-CCB4-4BEF-90B1-25BB1A5E6433Top
6 楼rzpc(淡蓝色)回复于 2005-06-02 22:37:42 得分 20
给你来一段:
注意:首先引用System.Net命名空间
Private Function GetURLState(strURL As String)
Dim strReturn As String
Dim objRequest As HttpWebRequest
Dim objResponse As HttpWebResponse
Try
objRequest = CType(HttpWebRequest.Create(strURL), HttpWebRequest)
objRequest.AllowAutoRedirect = False
objResponse = CType(objRequest.GetResponse(), HttpWebResponse)
Select Case objResponse.StatusCode
Case HttpStatusCode.Accepted
strReturn = "指示请求已被接受做进一步处理。"
Case HttpStatusCode.Ambiguous
strReturn = "重定向"
Case HttpStatusCode.BadGateway
strReturn = "示中间代理服务器从另一代理或原始服务器接收到错误响应。"
Case HttpStatusCode.BadRequest
strReturn = "服务器未能识别请求。"
Case HttpStatusCode.Conflict
strReturn = "由于服务器上的冲突而未能执行请求。"
Case HttpStatusCode.Continue
strReturn = "客户端可能继续其请求。"
Case HttpStatusCode.Created
strReturn = "请求导致在响应被发送前创建新资源。"
Case HttpStatusCode.ExpectationFailed
strReturn = "服务器未能符合 Expect 头中给定的预期值。"
Case HttpStatusCode.Forbidden
strReturn = "服务器拒绝满足请求。"
Case HttpStatusCode.Found
strReturn = "求的信息位于 Location 头中指定的 URI 处。接收到此状态时的默认操作为遵循与响应关联的 Location 头。"
Case HttpStatusCode.GatewayTimeout
strReturn = "中间代理服务器在等待来自另一个代理或原始服务器的响应时已超时。"
Case HttpStatusCode.Gone
strReturn = "请求的资源已不再可用。"
Case HttpStatusCode.HttpVersionNotSupported
strReturn = "服务器不支持请求的 HTTP 版本。"
Case HttpStatusCode.InternalServerError
strReturn = "服务器上发生了一般错误。"
Case HttpStatusCode.LengthRequired
strReturn = "缺少必需的 Content-length 头。"
Case HttpStatusCode.MethodNotAllowed
strReturn = "请求的资源上不允许请求方法(POST 或 GET)。"
Case HttpStatusCode.Moved
strReturn = "求的信息已移到 Location 头中指定的 URI 处。"
Case HttpStatusCode.MovedPermanently
strReturn = "请求的信息已移到 Location 头中指定的 URI 处。"
Case HttpStatusCode.MultipleChoices
strReturn = "请求的信息有多种表示形式。"
Case HttpStatusCode.NoContent
strReturn = "已成功处理请求并且响应已被设定为无内容。"
Case HttpStatusCode.NonAuthoritativeInformation
strReturn = "返回的元信息来自缓存副本而不是原始服务器,因此可能不正确。"
Case HttpStatusCode.NotAcceptable
strReturn = "客户端已用 Accept 头指示将不接受资源的任何可用表示形式。"
Case HttpStatusCode.NotFound
strReturn = "请求的资源不在服务器上。"
Case HttpStatusCode.NotImplemented
strReturn = "服务器不支持请求的函数。"
Case HttpStatusCode.NotModified
strReturn = "客户端的缓存副本是最新的。"
Case HttpStatusCode.OK
strReturn = "求成功,且请求的信息包含在响应中。"
Case HttpStatusCode.PartialContent
strReturn = "响应是包括字节范围的 GET 请求所请求的部分响应。"
Case HttpStatusCode.PaymentRequired
strReturn = "保留 PaymentRequired 以供将来使用。"
Case HttpStatusCode.PreconditionFailed
strReturn = "为此请求设置的条件失败,且无法执行此请求。"
Case HttpStatusCode.ProxyAuthenticationRequired
strReturn = "请求的代理要求身份验证。"
Case HttpStatusCode.Redirect
strReturn = "请求的信息位于 Location 头中指定的 URI 处。"
Case HttpStatusCode.RedirectKeepVerb
strReturn = "请求信息位于 Location 头中指定的 URI 处。"
Case HttpStatusCode.RedirectMethod
strReturn = "等效于 HTTP 状态 303。"
Case HttpStatusCode.RequestedRangeNotSatisfiable
strReturn = "无法返回从资源请求的数据范围,因为范围的开头在资源的开头之前,或因为范围的结尾在资源的结尾之后。"
Case HttpStatusCode.RequestEntityTooLarge
strReturn = "请求太大,服务器无法处理。"
Case HttpStatusCode.RequestTimeout
strReturn = "客户端没有在服务器期望请求的时间内发送请求。"
Case HttpStatusCode.RequestUriTooLong
strReturn = "URI 太长。"
Case HttpStatusCode.ResetContent
strReturn = "客户端应重置(或重新加载)当前资源。"
Case HttpStatusCode.SeeOther
strReturn = "等效于 HTTP 状态 303。"
Case HttpStatusCode.ServiceUnavailable
strReturn = "服务器暂时不可用,通常是由于过多加载或维护。"
Case HttpStatusCode.SwitchingProtocols
strReturn = "正在更改协议版本或协议。"
Case HttpStatusCode.TemporaryRedirect
strReturn = "请求信息位于 Location 头中指定的 URI 处。"
Case HttpStatusCode.Unauthorized
strReturn = "请求的资源要求身份验证。"
Case HttpStatusCode.UnsupportedMediaType
strReturn = "请求是不支持的类型。"
Case HttpStatusCode.Unused
strReturn = "未完全指定的 HTTP/1.1 规范的建议扩展。"
Case HttpStatusCode.UseProxy
strReturn = "请求应使用位于 Location 头中指定的 URI 的代理服务器。"
Case Else
strReturn = "未知状态"
End Select
Catch ex As System.UriFormatException
strReturn = "无效的URL"
Catch ex As Exception
strReturn = "未知错误:" & ex.Message
Finally
If Not objResponse Is Nothing Then objResponse.Close()
End Try
Return strReturn
End FunctionTop
7 楼wqdzgh(红螃蟹)回复于 2005-06-03 07:34:29 得分 0
to :rzpc(淡蓝色)
非常感谢,这正是我想要的.Top




