Estoy tratando de obtener información de perfil público de LinkedIn. Para lograr esto, tengo que proporcionar
http://api.linkedin.com/v1/people/url=public-profile-url, donde public-profile-url DEBE tener codificación URL.Mantener la URL codificada mientras usa la clase de URI
El problema es que las clases .NET como HttpClient, WebRequest, etc. usan la clase Uri que parece "canonizar" la URL proporcionada, por lo que no puedo enviar la solicitud con el formato correcto.
El URI debe ser:
http://api.linkedin.com/v1/people/url=http%3a%2f%2fwww.linkedin.com%2fin%2fiftachragoler
pero es:
http://api.linkedin.com/v1/people/url=http://www.linkedin.com/in/iftachragoler
De esta manera, recibo el mensaje 'Bad Request' de LinkedIn.
¿Hay alguna forma en que pueda hacer que Uri/UriBuilder no descodifique esa URL?
¿Estás haciendo algo como '" http://api.linkedin.com/v1/people/url= "+ uri.ToString()'? Entonces la clase de URI está haciendo exactamente lo que debería hacer y lo estás haciendo mal. – dtb
En realidad, estoy haciendo "http://api.linkedin.com/v1/people/url=" + Url.Encode (profileUrl), y luego paso eso a DotNetOpenAuth que a su vez lo pasa a UriBuilder. –
No hay clase Url en .NET. Por favor, muestre el código real que está usando. – dtb