gpt4 book ai didi

c# - 当服务器返回错误时,有什么方法可以使用 WebClient 访问响应主体?

转载 作者:行者123 更新时间:2023-11-30 12:33:49 25 4
gpt4 key购买 nike

有没有办法在使用WebClient类时响应状态为4xx时访问响应体,例如:

(webClient, evt) => // this is the event handler for the UploadStringCompleted event
{
if (evt.Error != null)
{
// can I access the response text?
}
});

最佳答案

因为 evt.Error 是一个 WebException(而不是一个 vanilla Exception),这就是我所做的(请原谅 VB.NET):

''' <summary>
''' Extends a WebException to include any body text from the HTTP Response in the .Message
''' </summary>
Friend Function ExtendWebExceptionInfo(ex As Exception) As Exception
Dim wEx As WebException = TryCast(ex, WebException)
If wEx Is Nothing Then Return ex

Dim exMessage As String = Nothing
Using reader As New StreamReader(wEx.Response.GetResponseStream, System.Text.Encoding.UTF8)
exMessage = reader.ReadToEnd
End Using
If Not String.IsNullOrWhiteSpace(exMessage) Then
exMessage = String.Format("{0}{1}{1}The server says:{1}{2}", wEx.Message, vbCrLf, exMessage)
Return New WebException(exMessage, wEx, wEx.Status, wEx.Response)
End If
Return wEx
End Function

关于c# - 当服务器返回错误时,有什么方法可以使用 WebClient 访问响应主体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8381576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com