HttpClient错误505物理设备IOS不工作


var client = new HttpClient();
client.BaseAddress = new Uri("http://212.212.212.212/Test/");
var jsonData = JsonConvert.SerializeObject(obj);
var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
HttpResponseMessage json = await client.PostAsync(method , content);
json.EnsureSuccessStatusCode();
var response =await json.Content.ReadAsStringAsync();

它在ios模拟器上工作。但是,当我在实际设备上安装应用程序时,http/1.1不支持错误505。是否因为https不可用而出现此错误?

恰恰相反。iOS默认阻止每个非安全端点;http";连接(不是https(。

在Xamarin.iOS.中使用应用程序传输安全有几种方法可以解决这个问题

最简单的方法就是允许所有http流量通过应用程序;将其添加到iOS解决方案的.plist中。但是,我不一定推荐这种极端的解决方案。

<dict>
<key>NSAllowsArbitraryLoads</key><true/>
</dict>

然而,建议的方法是专门允许只访问某些端点。再次通过你的plist,你可以像这样包括它们:

<dict>
<key>NSExceptionDomains</key>
<dict>
<key>subdomain.somedomain.com</key>
<dict>
<key>NSIncludesSubdomains</key><true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key><true/>
<key>NSExceptionRequiresForwardSecrecy</key><false/>
</dict>
</dict>
</dict>

最新更新