2013-10-08 7 views
0

經過數百次測試後,我仍無法通過LinkedIn API訪問關於我的一級聯繫人的信息。Linkedin API - 資源{Person}中的未知字段{}

我總是會遇到資源{Person}中非常煩人的「Unknown field {}}」錯誤。

我使用OAuth2。以下要求完美的作品:

https://api.linkedin.com/v1/people/~?oauth2_access_token=AQW ...

一個不:

https://api.linkedin.com/v1/people/url=http%3A%2F%2Fwww.linkedin.com%2Fin%2Fsebastienrousset?oauth2_access_token=AQW ...

  • 給定資料網址是1級的公共profite網址聯繫
  • 我見過很多關於與斜槓編碼有關的特定錯誤的帖子=>我的編碼是正確的。
  • 是的,我給了應用程序的默認範圍basicprofile,fullprofile和網絡
  • 當請求OAuth2授權時,我在顯式範圍內做了同樣的事情。

我錯過了什麼? 任何幫助萬一理解

,讓我補充一個示例代碼

// works 
//var url = "https://api.linkedin.com/v1/people/~?oauth2_access_token=" + tokenAccess; 
// does not work 
var url = "https://api.linkedin.com/v1/people/url=http%3A%2F%2Fwww.linkedin.com%2Fin%2Fsebastienrousset?oauth2_access_token=" + tokenAccess; 

// create the request 
var request = (WebRequest.Create(url) as HttpWebRequest); 

string message; 
try 
{ 
    // now get a response 
    var response = (request.GetResponse() as HttpWebResponse); 

    message = "success"; 
} 
catch (WebException wexc) 
{ 
    // returned status code is 400 (BadRequest) 
    message = "failure - HTTP " + ((HttpWebResponse)wexc.Response).StatusCode; 
} 

回答

0

答案是:把這個變成你的web.config

<uri> 
    <schemeSettings> 
    <add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes" /> 
    <add name="https" genericUriParserOptions="DontUnescapePathDotsAndSlashes" /> 
    </schemeSettings> 
</uri> 

.NET框架在URI解析中添加了一個額外的安全性,可以跳過斜槓。 這就是爲什麼我的請求可能以linkedin API的BadRequest結尾。