LinkedIn基础连接已关闭



我们的应用程序使用带有LinkedIn的oauth2来发布到客户的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;

最新更新