C# 访问非公共HttpWebRequest.\u HttpResponse在C中#

C# 访问非公共HttpWebRequest.\u HttpResponse在C中#,c#,rest,C#,Rest,我正在尝试使用C#对Google的OAuth进行身份验证,尽管我尽了最大努力,我仍然收到400个错误请求 所以我的小弟弟 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 从来没有得到过回应。我的响应对象从未填充 但谷歌在400秒时发回数据。如果您将浏览器指向 我的问题是如何在C#中访问这些信息?它似乎位于HttpWebRequest的非公开成员的内部。\u HttpResponse,但它是bytearray格

我正在尝试使用C#对Google的OAuth进行身份验证,尽管我尽了最大努力,我仍然收到400个错误请求

所以我的小弟弟

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
从来没有得到过回应。我的响应对象从未填充

但谷歌在400秒时发回数据。如果您将浏览器指向

我的问题是如何在C#中访问这些信息?它似乎位于HttpWebRequest的非公开成员的内部。\u HttpResponse,但它是bytearray格式的,我无法通过编程读取或访问它


任何帮助都将不胜感激。

您的
响应
对象从未被填充,因为
请求.GetResponse()
在出现400错误时抛出了一个

试着这样做:

HttpWebResponse response;
bool isValid = false;

try
{
    response = (HttpWebResponse)request.GetResponse();
    isValid = true;
}
catch (WebException we)
{
    response = (HttpWebResponse)we.Response;
}

if (isValid)
{
    // the response was valid
}
else
{
    // the response returned a 400 error
}
HttpWebResponse response;
try
{
    response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
    response = (HttpWebResponse)ex.Response;
}

您需要捕获抛出的404异常,如下所示:

HttpWebResponse response;
bool isValid = false;

try
{
    response = (HttpWebResponse)request.GetResponse();
    isValid = true;
}
catch (WebException we)
{
    response = (HttpWebResponse)we.Response;
}

if (isValid)
{
    // the response was valid
}
else
{
    // the response returned a 400 error
}
HttpWebResponse response;
try
{
    response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
    response = (HttpWebResponse)ex.Response;
}
这很烦人,而且我有点疏忽,但是如果您使用的是
HttpWebRequest
类,那么这是唯一的方法