我正在尝试使用以下代码连接到我们的asp.net mvc应用程序中的wordpress api
public static string GetLifespeakBlogListings()
{
WebClient client = new WebClient();
string url = "https://lifespeak.com/wp-json/wp/v2/posts?categories=6";
string listings = client.DownloadString(url);
return listings;
}
然而我遇到以下异常:
System.Security.SecurityException Failed to negotiate HTTPS connection with server.fiddler.network.https> HTTPS handshake to lifespeak.com (for #1) failed. System.IO.IOException Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
如果我从浏览器访问此Feed,则工作正常https://lifespeak.com/wp-json/wp/v2/posts?categories=6
我假设我们的wordpress网站上的某些内容由于某种原因阻止了此请求。有什么我可以配置来防止这种情况?我该如何确定原因?
答案 0 :(得分:0)
问题是我在我的应用程序中使用的System.Net版本试图使用TLS 1.0向wordpress API发出请求,并且被拒绝,类似于dave在上面指出的fiddler问题。我通过在How to specify SSL protocol to use for WebClient class
中指定的方法中添加以下代码行来解决此问题ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
请注意,必须手动添加该值并将其强制转换为SecurityProtocolType,因为.net 4.0(我使用的版本)不支持tls1.2