gpt4 book ai didi

c# - PostAsync 参数始终为 null

转载 作者:太空宇宙 更新时间:2023-11-03 22:59:20 24 4
gpt4 key购买 nike

我正在调用 API Post 方法,但是,我不确定自己做错了什么,但 API 中的值始终为 null。我调用 API 的方法如下。当我点击它时,我可以看到 Ids 是具有 5 个值的整数列表。

private void Save(List<int> Ids)
{
var myAPI = ConfigurationManager.AppSettings["MyAPI"];

string myIds = string.Join(",", Ids);

using (var client = new HttpClient())
{

int result = client.PostAsync(myAPI, new { test = myIds }, new JsonMediaTypeFormatter())
.Result
.Content
.ReadAsAsync<int>()
.Result;
}
}

我的 API 签名如下所示 - 有一个断点,我可以看到它被命中但测试我试图传递的参数始终为 null

    [HttpPost]
[Route("api/MyController/SaveData")]
public HttpResponseMessage SaveData([FromBody]List<string> test)
{
try
{
//Rest of method removed for brevity

我已尝试从 WebAPI Controller 中删除 [FromBody] 注释,但测试仍然在 SaveData API 方法中使用断点获取空值

最佳答案

试试这个:

private void Save(List<int> Ids)
{
var myAPI = ConfigurationManager.AppSettings["MyAPI"];

using (var client = new HttpClient())
{
var requestBody = JsonConvert.SerializeObject(Ids);
var postRequest = new StringContent(requestBody, Encoding.UTF8, "application/json");

var response = client.PostAsync(myAPI, postRequest).GetAwaiter().GetResult();
var rawResponse = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
// Do something with the answer
}
}

我还建议使方法 private Task Save 并将前面的 .GetAwaiter().GetResult(); 替换为 await那个电话。

关于c# - PostAsync 参数始终为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43895962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com