我正在尝试从一个来自https网址的服务json数据的WCF获取数据。 使用此代码可以很好地指向HTTP URL(注意不是HTTPS)。
save
但对于HTTPS,我得到:
System.Net.WebException:错误:SecureChannelFailure(无法读取 来自传输连接的数据:由对等方重置连接。)
另请注意,我可以浏览到https网址并获得正确的响应,因此我非常确定WCF / IIS服务器的行为应该如此。
可以通过将项目属性下的TLS设置更改为Mono而不是Apple来修复。我这样做了,并没有改变。
另一个网站(现在丢失了网址)表明,将其添加到AppDelegate.cs FinishedLaunching方法以允许所有证书可能有效(尽管不是一个好的解决方案):
HttpContent content = new StringContent("{ var1: test }", Encoding.UTF8, "application/json");
var client = new System.Net.Http.HttpClient();
client.Timeout = new TimeSpan(0, 0, 60);
var response = client.PostAsync(url, content);
var jsonResponse = response.Result.Content.ReadAsStringAsync().Result;
double kiloBytesData = (jsonResponse.Length * sizeof(Char)) / 1024d;
这也不起作用并导致相同的错误。
如果它有任何区别,SSL证书就是从这里https://letsencrypt.org/(很棒的服务顺便说一句)。
关于如何在Xamarin.iOS中从HTTPS绑定的WCF发布和接收json数据的更多建议?