我有一个Xamarin.Forms PCL应用程序,它通过HttpClient访问webservices。该应用程序正在Android上运行,但在iOS上它根本不能连接到Web服务。我是否需要为iOS和REST创建代理?
我在这里阅读了http://developer.xamarin.com/guides/cross-platform/application_fundamentals/web_services/的信息,但坦率地说,这让我很困惑。我试图创建代理,但它没有成功。如果有必要,我会坚持不懈。
我也尝试过HttpWebRequest方法,但也没有成功。
答案 0 :(得分:1)
您只需要为WCF或SOAP生成代理。休息应该工作得很好。这就是我在PCL中使用HttpClient为REST服务实现GET的方法。
using (var client = new HttpClient())
{
var result = await client.GetStringAsync(url);
return JsonConvert.DeserializeObject<Movie>(result);
}
当然其他动词需要更多的工作。
您是否需要在app.config中进行绑定重定向?查看此博客文章,了解如何添加重定向:http://motzcod.es/post/78863496592/portable-class-libraries-httpclient-so-happy。
以下是一个例子:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="2.0.5.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>