Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 构建Windows窗体应用程序并尝试从Paypal接收访问令牌_C#_Visual Studio 2010_Paypal - Fatal编程技术网

C# 构建Windows窗体应用程序并尝试从Paypal接收访问令牌

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";

我正在使用Visual Studio 2010和.NET Framework 4构建一个Windows窗体应用程序

我正在尝试使用c#HTTP POST请求从paypal接收访问令牌。我一直得到以下信息:

System.Net.WebException:远程服务器返回错误:(401)未经授权。
在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;
看到这个了吗

他们举了一些例子。它引导您生成访问令牌