小编Zyo*_*Zyo的帖子

C#WebClient也在C#中使用UploadString从ApiController调用HttpPost方法。415或400错误

我想在C#中也用C#调用ApiController,但是从WebClient实例使用UploadString方法上传Json时出现错误415或400。

服务器代码是自动生成的调用TestController。该文件正是Visual Studio 2019生成文件的方式。

[Route("api/[controller]")]
[ApiController]
public class TestController : ControllerBase
{
    // GET: api/Test
    [HttpGet]
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // POST: api/Test
    [HttpPost]
    public void Post([FromBody] string value)
    {
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

客户端代码如下所示:

WebClient client = new WebClient();
client.UploadString("https://localhost:44345/api/Test", "ABC");   // Edit: "ABC" is not a valid JSON
Run Code Online (Sandbox Code Playgroud)

我收到 System.Net.WebException:'远程服务器返回错误:(415)不支持的媒体类型。

因此,在谷歌搜索之后,大多数建议是如果我添加,ContentType不会得到指定

client.Headers[HttpRequestHeader.ContentType] = "application/json";
Run Code Online (Sandbox Code Playgroud)

我得到System.Net.WebException:'远程服务器返回错误:(400)错误的请求。

有什么线索吗?

似乎问题与POST/ PUT/ PATCH... 有关,如果执行了GET,它正在工作并向我返回示例数据["value1","value2"]

编辑:我不坚持使用WebClient.UploadString方法,但是我想要一个不涉及25行自定义代码的解决方案...我的意思是我不敢相信在jQuery中使用它可以做到这一点很难一行。

c# json webclient asp.net-core

2
推荐指数
1
解决办法
741
查看次数

标签 统计

asp.net-core ×1

c# ×1

json ×1

webclient ×1