Tôi đang cố gắng lấy thông tin hồ sơ công khai từ LinkedIn. Để đạt được điều này, tôi phải cung cấp
http://api.linkedin.com/v1/people/url=public-profile-url, trong đó url hồ sơ công khai PHẢI được mã hóa URL.Giữ url được mã hóa trong khi sử dụng lớp URI
Vấn đề là các lớp .NET chẳng hạn như HttpClient, WebRequest, v.v. sử dụng lớp Uri có vẻ như "canonize" URL được cung cấp, để tôi không thể gửi yêu cầu được định dạng đúng.
URI phải:
http://api.linkedin.com/v1/people/url=http%3a%2f%2fwww.linkedin.com%2fin%2fiftachragoler
nhưng là:
http://api.linkedin.com/v1/people/url=http://www.linkedin.com/in/iftachragoler
Bằng cách này, tôi nhận được 'Yêu cầu Bad' từ LinkedIn.
Có cách nào tôi có thể yêu cầu Uri/UriBuilder không giải mã URL đó không?
Bạn có đang làm một cái gì đó như '" http://api.linkedin.com/v1/people/url= "+ uri.ToString()'? Sau đó, lớp URI đang làm chính xác những gì nó nên làm và bạn đang làm sai. – dtb
Thực ra, tôi đang thực hiện "http://api.linkedin.com/v1/people/url=" + Url.Encode (profileUrl), và sau đó chuyển nó tới DotNetOpenAuth mà chính nó chuyển nó tới UriBuilder. –
Không có lớp Url nào trong .NET. Vui lòng hiển thị mã thực tế bạn đang sử dụng. – dtb