【发布时间】:2012-06-17 13:45:10
【问题描述】:
我正在尝试从 LinkedIn 获取公开的个人资料信息。为此,我必须提供
http://api.linkedin.com/v1/people/url=public-profile-url,其中 public-profile-url 必须是 URL 编码的。
问题是 .NET 类(如 HttpClient、WebRequest 等)使用 Uri 类,该类似乎“规范”了提供的 URL,因此我无法发送正确格式的请求。
URI 必须是:
http://api.linkedin.com/v1/people/url=http%3a%2f%2fwww.linkedin.com%2fin%2fiftachragoler
但是:
http://api.linkedin.com/v1/people/url=http://www.linkedin.com/in/iftachragoler
这样,我收到了来自 LinkedIn 的“错误请求”。
有什么方法可以让 Uri/UriBuilder 不解码该 URL?
【问题讨论】:
-
你在做类似
"http://api.linkedin.com/v1/people/url=" + uri.ToString()的事情吗?然后 URI 类正在做它应该做的事情,而你做错了。 -
实际上,我正在执行“api.linkedin.com/v1/people/url=”+ Url.Encode(profileUrl),然后将其传递给 DotNetOpenAuth,DotNetOpenAuth 本身将其传递给 UriBuilder。
-
.NET 中没有 Url 类。请显示您正在使用的实际代码。
-
对不起,我的错:var linkedInRequestUrls = string.Format(LinkedInRestApi.PeoplePersonByPublicUrl, HttpUtility.UrlEncode(url))