Hen*_*nko 10 .net c# linkedin web
我正在尝试从LinkedIn获取公开个人资料信息.要实现这一点,我必须提供
http://api.linkedin.com/v1/people/url=public-profile-url,其中public-profile-url必须是URL编码的.
问题是,像HttpClient,WebRequest等.NET类使用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收到'Bad Request'.
有什么方法可以让Uri/UriBuilder不解码该URL吗?
有关Microsoft Connect的报告.默认情况下,由于安全原因,不允许使用转义斜杠.
http://connect.microsoft.com/VisualStudio/feedback/details/94109/
从那里引用:
我尝试使用LinkedIn api,我需要以下链接:http://api.linkedin.com/v1/people/url=http%3A%2F%2Fwww.linkedin.com%2Fin%2Fyourlinkedinname : public
如您所见,url字段需要转义.怎么解决这个?
回答:
我们目前不允许转义斜杠和点出现在路径中,因为这是在URI方案支持路径压缩时攻击服务器的常用方法.
但是有一些工作区的标签.其中一个用于.NET 4的是添加app.config:
对于.NET 4.0,您可以通过配置文件来控制它:
http://msdn.microsoft.com/en-us/library/bb882619.aspx
http://msdn.microsoft.com/en-us/library/ee656539.aspx
<configuration>
<uri>
<schemeSettings>
<clear/>
<add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>
</schemeSettings>
</uri>
</configuration>
Run Code Online (Sandbox Code Playgroud)
.NET之前的.NET是Uri类的构造函数,参数为"dontEscape".对于.NET 4,它已经过时了.
| 归档时间: |
|
| 查看次数: |
3007 次 |
| 最近记录: |