gpt4 book ai didi

c# WebRequest 到 Google API 错误请求

转载 作者:太空宇宙 更新时间:2023-11-03 16:30:22 25 4
gpt4 key购买 nike

当我运行这段代码来调用 Google API 时,我得到的只是一个“Bad Request”错误,但我不知道哪里出错了。

代码从 Google 的授权页面返回没有问题,当代码到达下面的部分时失败。请有人告诉我哪里出了问题吗?

我知道有用于此的库,但我正在尝试了解如何以 RESTful 方式执行此操作作为学习练习。

谢谢

   var code = Request.QueryString["code"];

var accessToken = string.Empty;
var req0 = WebRequest.Create("https://accounts.google.com/o/oauth2/token");
req0.Method = "POST";
string postData = string.Format("code={0}&client_id={1}&client_secret={2}&redirect_uri= {3}&grant_type=authorization_code",
code, //the code i got back
"xxxx.apps.googleusercontent.com",
"xxx",
Url.Encode("http://localhost/home/callback")
); //my return URI

byte[] byteArray = Encoding.UTF8.GetBytes(postData);
req0.ContentType = "application/x-www-form-urlencoded";
req0.ContentLength = byteArray.Length;
using (Stream dataStream = req0.GetRequestStream())
{
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
}
try
{
using (WebResponse response = req0.GetResponse())
{
using (var dataStream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(dataStream))
{
string responseFromServer = reader.ReadToEnd();
var ser = new JavaScriptSerializer();
accessToken = ser.DeserializeObject(responseFromServer).ToString();
}
}
}
}
catch (WebException wex)
{
Debug.WriteLine(wex.ToString());
}
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());

}

最佳答案

当涉及到您在 API 控制台中为您的客户端 ID 返回 URI 输入的内容,以及您在代码中输入的内容以调用它时,Google API 非常挑剔。

我遗漏了结尾的正斜杠。就这些。经验教训...

感谢 Jon 和 Sandeep 通过比较网络流量中的内容以及我应该发送的内容,帮助我指明了正确的方向。

关于c# WebRequest 到 Google API 错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11037249/

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