我正在尝试使用C#对Google的OAuth进行身份验证,尽管我付出了最大努力,但我仍然收到了400条错误请求。
所以我的小
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
永远不会得到回应。我的回复对象永远不会被填充。
但谷歌会发送400s的数据。如果您将浏览器指向https://www.google.com/accounts/OAuthGetRequestToken
,则可以看到我的问题是如何在C#中访问该信息?它似乎是在HttpWebRequest._HttpResponse的非公共成员中,但它是以字节数组形式,我无法读取或以编程方式访问它。
任何帮助都将不胜感激。
答案 0 :(得分:2)
您需要捕获抛出的404异常,如下所示:
HttpWebResponse response;
try
{
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
response = (HttpWebResponse)ex.Response;
}
令人讨厌,IMO有点疏忽,但这是你使用HttpWebRequest
课程的唯一方法。
答案 1 :(得分:0)
response
对象永远不会被填充,因为request.GetResponse()
在400错误时抛出了WebException
。
尝试这样的事情:
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
}