我有一个用NodeJS + ExpressJS + MongoDB编写的graphql服务器,我可以运行以下突变:
我需要在C#桌面应用程序上使用graphql api。所以,我决定在C#中创建一个简单的GraphQL客户端,如下所示:
我这样用:
var client = new SimpleGraphQLClient("https://tweetserver.dynamic-dns.net/graphql");
var query = @"
mutation {
signup(
email: $email
fullName: $fullName
password: $password
avatar: $avatar
username: $username
) {
token
}
}
";
dynamic signup = client.Execute(query, new
{
email = "test-user3@domain.com",
fullName = "Test User",
password = "123456",
avatar = "https://randomuser.me/api/portraits/women/0.jpg",
username = "testuser3"
});
if (signup != null && signup.error == null)
{
Console.WriteLine((string)signup.token);
}
else
{
Console.WriteLine("Error - {0}", signup.error);
}
当我运行测试仪时,我收到以下错误:
错误 - 基础连接已关闭:意外错误 在发送时发生。
我知道graphql api端点是有效的并且按预期工作(参见第一个屏幕截图):
https://tweetserver.dynamic-dns.net/graphql https://tweetserver.dynamic-dns.net/graphiql
任何想法可能出错?
答案 0 :(得分:0)
我想我已经明白了。我正在使用来自https://cipherli.st的LetsEncrypt免费SSL和nginx规则,而NginX(运行ssl +规则的反向代理)拒绝通过RestSharp从我的c#graphql客户端连接。
要解决此错误,您只需将其添加到您的应用中:
ServicePointManager.SecurityProtocol =
SecurityProtocolType.Tls12 |
SecurityProtocolType.Tls11 |
SecurityProtocolType.Tls;