C# 构建Windows窗体应用程序并尝试从Paypal接收访问令牌
我正在使用Visual Studio 2010和.NET Framework 4构建一个Windows窗体应用程序 我正在尝试使用c#HTTP POST请求从paypal接收访问令牌。我一直得到以下信息: System.Net.WebException:远程服务器返回错误:(401)未经授权。C# 构建Windows窗体应用程序并尝试从Paypal接收访问令牌,c#,visual-studio-2010,paypal,C#,Visual Studio 2010,Paypal,我正在使用Visual Studio 2010和.NET Framework 4构建一个Windows窗体应用程序 我正在尝试使用c#HTTP POST请求从paypal接收访问令牌。我一直得到以下信息: System.Net.WebException:远程服务器返回错误:(401)未经授权。 在System.Net.HttpWebRequest.GetResponse()中 我的代码中遗漏了什么吗 非常感谢 这是我的代码: string ClientID = "1234";
在System.Net.HttpWebRequest.GetResponse()中 我的代码中遗漏了什么吗 非常感谢 这是我的代码:
string ClientID = "1234";
string secret = "****";
WebRequest Request = WebRequest.Create(" https://api.sandbox.paypal.com/v1/oauth2/token");
Request.Method = "POST";
Request.ContentType = "application/x-www-form-urlencoded";
string PostData = System.Uri.EscapeDataString(String.Format("Accept=application/json&Accept-Language=en_US&user-id={0}&password={1}&grant_type=client_credentials", ClientID, secret));
byte[] ByteArray =Encoding.Default.GetBytes(PostData);
Request.ContentLength = ByteArray.Length;
Request.Headers["Authorization"] = "Basic " + ByteArray;
Stream dataStream;
using ( dataStream = Request.GetRequestStream())
{
dataStream.Write(ByteArray, 0, ByteArray.Length);
dataStream.Close();
}
WebResponse respones = Request.GetResponse();
Console.WriteLine(((HttpWebResponse)respones).StatusDescription);
Console.WriteLine(((HttpWebResponse)respones).Server);
Console.WriteLine(((HttpWebResponse)respones).ResponseUri);
dataStream = respones.GetResponseStream();
StreamReader sReader = new StreamReader(dataStream);
string ResponesFromServer = sReader.ReadToEnd();
Console.WriteLine(ResponesFromServer);
dataStream.Close();
sReader.Close();
respones.Close();
它显示了身份验证问题。尝试使用http基本身份验证
var bytes = Encoding.UTF8.GetBytes("ClientID:secret");
var base64 = Convert.ToBase64String(bytes);
Request.Headers["Authorization"] = "Basic " + base64;
看到这个了吗
他们举了一些例子。它引导您生成访问令牌