0

我是 VB 新手...我正在使用以下代码发出 HTTP 请求并将响应缓冲到字符串中:

 Try
            myHttpWebRequest = CType(WebRequest.Create(strUrl), HttpWebRequest)
            myHttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)
            receiveStream = myHttpWebResponse.GetResponseStream()
            encode = System.Text.Encoding.GetEncoding("utf-8")
            sr = New StreamReader(receiveStream, encode)

            Do Until sr.Peek = -1
                strLine = String.Concat(strLine, sr.ReadLine)
                arrBuff.Add(strLine)
            Loop
        Catch ex As System.Net.WebException
            MsgBox(ex.Message)
        Finally
            myHttpWebResponse.Close()
        End Try
        sr.Close()

这工作正常,但错误处理不好,例如,如果请求触发 500 响应,则 VB 代码遇到未处理的异常。关于如何使这段代码更好的任何想法?

4

2 回答 2

1

使用HttpWebResponse.StatusCode来确定服务器是否向您发送了除(可能)200(OK)以外的任何内容。

于 2012-07-08T18:33:57.293 回答
1

不使用 MsgBox,而是按如下方式引发异常:

Catch ex As Exception
    Throw New Exception(ex.Message)

如果您从网页进行 AJAX 调用,您可以使用以下命令检索消息:

Catch ex As Exception
    HttpContext.Current.Response.Write(ex.Message);
    HttpContext.Current.Response.StatusCode = 500;
于 2012-07-08T19:07:53.437 回答