Próbuję uzyskać publiczne informacje profilowe z LinkedIn. Aby to osiągnąć, muszę dostarczyć
http://api.linkedin.com/v1/people/url=public-profile-url, gdzie publiczny-profil-URL MUSI być zakodowany URL.Zachowaj zakodowany adres URL podczas korzystania z URI klasy
Problem polega na tym, że klasy .NET, takie jak HttpClient, WebRequest itp., Używają klasy Uri, która wydaje się "kanonizować" podany adres URL, więc nie mogę otrzymać poprawnie sformatowanego żądania wysłanego.
URI musi być:
http://api.linkedin.com/v1/people/url=http%3a%2f%2fwww.linkedin.com%2fin%2fiftachragoler
ale jest:
http://api.linkedin.com/v1/people/url=http://www.linkedin.com/in/iftachragoler
W ten sposób mogę 'Bad Request' z LinkedIn.
Czy istnieje sposób, aby Uri/UriBuilder nie mógł dekodować tego adresu URL?
Czy robisz coś w stylu "http://api.linkedin.com/v1/people/url=" + uri.ToString() '? Następnie klasa URI robi dokładnie to, co powinna, a robisz to źle. – dtb
Właściwie robię "http://api.linkedin.com/v1/people/url=" + Url.Encode (profileUrl), a następnie przekazuję to do DotNetOpenAuth, który sam przekazuje go do UriBuilder. –
Brak klasy Url w .NET. Pokaż rzeczywisty kod, którego używasz. – dtb