linkedin基础连接已关闭

时间:2018-06-26 14:03:09

标签: linkedin linkedin-api

我们的应用程序使用带有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;

1 个答案:

答案 0 :(得分:8)

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

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