Wordpress api不允许拒绝服务器端连接

时间:2018-05-24 21:21:30

标签: asp.net wordpress system.net

我正在尝试使用以下代码连接到我们的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

但是,如果我尝试使用fiddler,我会得到同样的异常: please see fiddler image

我假设我们的wordpress网站上的某些内容由于某种原因阻止了此请求。有什么我可以配置来防止这种情况?我该如何确定原因?

1 个答案:

答案 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