গুগলের OAuth2 পরিষেবাতে সংযোগ দেওয়ার চেষ্টা করার সময় আমারও একই সমস্যা ছিল।
আমি ওয়েস্ট রিকোয়েস্টটি এভাবে ব্যবহার না করে নিজেই পোস্টটি লিখেছিলাম:
TcpClient client = new TcpClient("accounts.google.com", 443);
Stream netStream = client.GetStream();
SslStream sslStream = new SslStream(netStream);
sslStream.AuthenticateAsClient("accounts.google.com");
{
byte[] contentAsBytes = Encoding.ASCII.GetBytes(content.ToString());
StringBuilder msg = new StringBuilder();
msg.AppendLine("POST /o/oauth2/token HTTP/1.1");
msg.AppendLine("Host: accounts.google.com");
msg.AppendLine("Content-Type: application/x-www-form-urlencoded");
msg.AppendLine("Content-Length: " + contentAsBytes.Length.ToString());
msg.AppendLine("");
Debug.WriteLine("Request");
Debug.WriteLine(msg.ToString());
Debug.WriteLine(content.ToString());
byte[] headerAsBytes = Encoding.ASCII.GetBytes(msg.ToString());
sslStream.Write(headerAsBytes);
sslStream.Write(contentAsBytes);
}
Debug.WriteLine("Response");
StreamReader reader = new StreamReader(sslStream);
while (true)
{ // Print the response line by line to the debug stream for inspection.
string line = reader.ReadLine();
if (line == null) break;
Debug.WriteLine(line);
}
প্রতিক্রিয়া স্ট্রিমটিতে যে প্রতিক্রিয়া লিখিত হয় সেটিতে আপনার পরে থাকা নির্দিষ্ট ত্রুটির পাঠ্য থাকে।
বিশেষত, আমার সমস্যাটি হ'ল আমি ইউআরএল-এনকোডড ডেটা টুকরোগুলির মধ্যে লাইনগুলি রেখেছিলাম। আমি যখন তাদের বাইরে নিয়ে এসেছি, তখন সমস্ত কিছুই কাজ করেছিল। আপনি আপনার পরিষেবাতে সংযোগ করতে এবং একই প্রতিক্রিয়া ত্রুটির পাঠটি পড়তে অনুরূপ কৌশলটি ব্যবহার করতে সক্ষম হতে পারেন।