【发布时间】:2021-03-31 05:31:16
【问题描述】:
我在 localhost (http://localhost:23061/graphql) 上运行了 GraphQL,我试图直接在 C# 中复制我在 UI 中执行的查询。我已经事先验证了邮递员上的 JSON 包是正确的,但是每当在 C# 中尝试这样的包时,它只会返回一个 500 错误,我尝试了这个包的很多变体(以 ' 交换 " 作为示例)但不幸的是所有一样。
所以我在邮递员上使用的查询是 {"query":"{goldBalance(address:"0xa49d64c31A2594e8Fb452238C9a03beFD1119963")}"} 这在邮递员中返回就好了。
然而,当把它移到 C# 时;
static async System.Threading.Tasks.Task Main(string[] args)
{
var httpClient = new HttpClient();
var url = "http://localhost:23061/graphql";
var data = "{ \"query\":\"{goldBalance(address: \"0xa49d64c31A2594e8Fb452238C9a03beFD1119963\")}\"}";
var content = new StringContent(data.ToString(), Encoding.UTF8, "application/json");
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var result = httpClient.PostAsync(url, content).Result;
Console.WriteLine(result);
}
当这个运行时,它总是会返回;
StatusCode: 500, ReasonPhrase: 'Internal Server Error', Version: 1.1, Content: System.Net.Http.HttpConnectionResponseContent, Headers:
{
Date: Tue, 30 Mar 2021 20:18:36 GMT
Server: Kestrel
Content-Length: 0
}
我最初认为这可能是 HTTPClient 问题但 WebRequest,所以这显然是我在某处发送的问题。
【问题讨论】:
-
你试过直接从邮递员那里得到代码sn-p吗?当我使用邮递员执行此操作时,它使用的是
RestClient对象而不是 HttpClient。试试看。 -
哦,哇,我不知道 Postman 可以创建代码 sn-ps。我真的在这上面浪费了两个晚上。非常感谢。
-
我很高兴能帮上忙。祝你好运!