linkedin基础连接已关闭

linkedin基础连接已关闭,linkedin,linkedin-api,Linkedin,Linkedin Api,我们的应用程序使用oauth2和linkedin发布到客户的LI个人资料中。授权用户的方法工作正常,但是获取访问令牌的下一段代码导致“基础连接已关闭:发送时发生意外错误”异常。内部异常表示“身份验证失败,因为远程方已关闭传输流” 我已经验证了我们的应用程序凭据是正确的,据我们所知,这项工作一直持续到今天。这些错误听起来像是LinkedIn方面的问题,但我不是100%确定。有什么办法可以解决这个问题吗 下面是失败方法的代码 var accessCodeUri = string.Format(

我们的应用程序使用oauth2和linkedin发布到客户的LI个人资料中。授权用户的方法工作正常,但是获取访问令牌的下一段代码导致“基础连接已关闭:发送时发生意外错误”异常。内部异常表示“身份验证失败,因为远程方已关闭传输流”

我已经验证了我们的应用程序凭据是正确的,据我们所知,这项工作一直持续到今天。这些错误听起来像是LinkedIn方面的问题,但我不是100%确定。有什么办法可以解决这个问题吗

下面是失败方法的代码

var accessCodeUri =
string.Format(
    "https://www.linkedin.com/uas/oauth2/accessToken?format=json&grant_type=authorization_code&code={0}&redirect_uri={1}&client_id={2}&client_secret={3}",
    authorizationCode,
    redirectUri.AbsoluteUri,
    linkedInApiKey,
    linkedInSecretKey);
string responseFromServer = string.Empty;
WebRequest request = WebRequest.Create(new Uri(accessCodeUri).AbsoluteUri);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = 0;
request.Headers["UserAgent"] = "JB oAuth2";

Stream dataStream = request.GetRequestStream();

string postData = string.Empty;
byte[] postArray = Encoding.ASCII.GetBytes(postData);
dataStream.Write(postArray, 0, postArray.Length);
dataStream.Close();

WebResponse response = request.GetResponse();
dataStream = response.GetResponseStream();
var reader = new StreamReader(dataStream);
responseFromServer = reader.ReadToEnd();

reader.Close();
dataStream.Close();
response.Close();
return responseFromServer;

在方法的顶部添加以下内容似乎解决了问题

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

谢谢!那是为了我!看起来LinkedIn在没有告诉任何人的情况下更改了他们的安全协议支持:(事实上,我认为他们做到了…我只是错过了它直到今天。哈哈,这已经超过一年了!他们很高兴能及时通知他们的开发人员…他们会很高兴在他们的授权代码流文档中添加关于这一点的注释…………无论如何,谢谢大家!