向服务器发出 Json POST 请求,但服务器响应 (400) 错误请求
本文关键字:服务器 请求 响应 错误 Json POST | 更新日期: 2023-09-27 18:35:40
我想使用Google api创建Gmail用户帐户。我正在向服务器发送 JSON 请求以获取授权代码,但我在 httpwebresponse 中收到这些错误:-
异常详细信息: System.Net.Web异常: 远程服务器返回错误: (400) 错误请求
var request = (HttpWebRequest)WebRequest.Create(@"https://accounts.google.com/o/oauth2/auth");
request.Method = "POST";
request.ContentType = "text/json";
request.KeepAlive = false;
//request.ContentLength = 0;
using (StreamWriter streamWriter = new StreamWriter(request.GetRequestStream()))
{
string json = "{'"scope'":'"https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile'"," + "'"state'":'"%2Fprofile'"," + "'"redirect_uri'":'"http://gmailcheck.com/response.aspx'"," + "'"response_type'":'"code'"," + "'"client_id'":'"841994137170.apps.googleusercontent.com'"}";
streamWriter.Write(json);
// streamWriter.Flush();
//streamWriter.Close();
}
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
StreamReader responsereader = new StreamReader(response.GetResponseStream());
var responsedata = responsereader.ReadToEnd();
//Session["responseinfo"] = responsereader;
//testdiv.InnerHtml = responsedata;
}
}
一旦出现异常,您必须阅读服务器的实际响应,应该会有所帮助。像错误描述或扩展状态代码...
例如:
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
... your code goes here....
}
catch (WebException ex)
{
using (WebResponse response = ex.Response)
{
var httpResponse = (HttpWebResponse)response;
using (Stream data = response.GetResponseStream())
{
StreamReader sr = new StreamReader(data);
throw new Exception(sr.ReadToEnd());
}
}
}