I have quite decent problems with this very simple task and asking for help. The question is: what is the best and the most reliable way to perform Http requests with timeout from Xamarin PCL?
There are several options:
Using old HttpWebRequest. This solution should definitely be working, but I have problems with BeginGetRequestStream method described in this question: http://stackoverflow.com/q/22572084/1645784 Also it requres some extra ugly code to implement timeouts properly.
HttpClient. HttpClient is not available in PCL out-of-the-box (I am using Profile 158 required by MvvmCross libraries). I was trying to install Microsoft HTTP Client Libraries but I still cannot compile the PCL project, error is: The type or namespace name 'Http' does not exist in the namespace 'System.Net' (are you missing an assembly reference?)
PortableRest NuGet package. Same problem - does not seem to work in PCL. Lots of compilation errors and warnings, for example:
The primary reference "System.Net.Http" could not be resolved because it has an indirect dependency on the framework assembly "System.Runtime, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the currently targeted framework. ".NETPortable,Version=v4.0,Profile=Profile158". To resolve this problem, either remove the reference "System.Net.Http" or retarget your application to a framework version which contains "System.Runtime, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". (MSB3268) (Prototype.Core)
What am I doing wrong? Why am I not able to use such basic standard libraries? Also asked this on SO: http://stackoverflow.com/q/22583168/1645784