linkedin底层连接已关闭

geo*_*rtz 2 linkedin linkedin-api

我们的应用程序使用oauth2和linkedin发布到我们客户的LI配置文件.授权用户的方法工作正常但是获取访问令牌的下一部分代码导致"基础连接已关闭:发送时发生意外错误"异常.内部异常显示"身份验证失败,因为远程方已关闭传输流".

我已经验证了我们的申请凭证是正确的,据我们所知,这一直到今天为止.这些错误让它听起来像是LinkedIn的一个问题,但我并不是百分百肯定.关于我如何排除故障的任何想法?

这是失败的方法的代码.

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;
Run Code Online (Sandbox Code Playgroud)

geo*_*rtz 9

将以下内容添加到方法的顶部似乎已经解决了问题.

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
Run Code Online (Sandbox Code Playgroud)

  • 实际上,我认为他们做到了……直到今天我才错过。https://www.linkedin.com/pulse/phase-two-our-tls-10-11-deprecation-plan-miles-mulcare/ (2认同)