【C#】.net core 6.0调用MVC API接口时,提示Unsupported Media Type,状态码415

06-02 1111阅读

🌹欢迎来到《小5讲堂》🌹

🌹这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解。🌹

🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!🌹

【C#】.net core 6.0调用MVC API接口时,提示Unsupported Media Type,状态码415

目录

  • 前言
  • 415提示
  • 原因分析
    • 常见原因和修复方法
    • 调试建议
    • 推荐文章

      前言

      有时候总会忘记Content-Type媒体类型对于API接口的情况。

      本篇文章就简单记录下这个小细节,下次再遇到也能够有个地方查询下原因。

      415提示

      【C#】.net core 6.0调用MVC API接口时,提示Unsupported Media Type,状态码415

      修改未json后,和api能够识别的Body类型后,能够调用到接口。

      【C#】.net core 6.0调用MVC API接口时,提示Unsupported Media Type,状态码415

      原因分析

      这个错误(HTTP 415 Unsupported Media Type)表示客户端(你的C#代码)向服务器发送的请求中包含的媒体类型(Content-Type)不被服务器支持。以下是解决方案:

      常见原因和修复方法

      1. 未设置或错误的 Content-Type 头

        • 确保你的请求设置了正确的 Content-Type 头(通常是 application/json)
        • 示例:
          client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // 接受JSON响应
          // 对于POST/PUT请求:
          var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
          
        • JSON序列化问题

          • 确保你发送的数据是正确格式化的JSON
          • 使用 Newtonsoft.Json 或 System.Text.Json 序列化对象:
            var jsonData = JsonConvert.SerializeObject(yourObject);
            
          • 完整的正确示例(HttpClient)

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("https://your-api.com/");
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                
                var yourObject = new { /* 你的数据 */ };
                var jsonData = JsonConvert.SerializeObject(yourObject);
                var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
                
                var response = await client.PostAsync("api/endpoint", content);
                if (response.IsSuccessStatusCode)
                {
                    var responseContent = await response.Content.ReadAsStringAsync();
                    // 处理响应
                }
            }
            
          • 检查API端点是否确实接受JSON

            • 有些API可能只接受 application/xml 或其他类型
            • 验证请求正文格式

              • 使用工具如Postman先测试API,确保你的JSON格式正确
              • 检查服务器端配置

                • 如果是你自己的API,确保Controller有 [ApiController] 属性
                • 或者检查是否有 [Consumes("application/json")] 属性

      调试建议

      1. 使用Fiddler或Charles捕获实际发出的请求
      2. 检查请求头是否包含正确的Content-Type
      3. 验证请求体是否是有效的JSON

      推荐文章

      【C#】Html转Pdf,Spire和iTextSharp结合,.net framework 4.8

      【C#】事务(进程 ID 64)与另一个进程被死锁在锁资源上,并且已被选作死锁牺牲品。请重新运行该事务。不能在具有唯一索引“XXX_Index”的对象“dbo.Test”中插入重复键的行。

      【C#】使用DeepSeek帮助评估数据库性能问题,C# 使用定时任务,每隔一分钟移除一次表,再重新创建表,和往新创建的表追加5万多条记录

      【C#】合理使用DeepSeek相关AI应用为我们提供强有力的开发工具,在.net core 6.0框架下使用JsonNode动态解析json字符串,如何正确使用单问号和双问号做好空值处理

      【C#】已经实体类和动态实体类的反射使用方法,两分钟回顾,码上就懂

      【C#】使用vue3的axios发起get和post请求.net framework部署的API显示跨域

      【C#】.net core 6.0 webapi 使用core版本的NPOI的Excel读取数据以及保存数据

      【C#】pdf按页分割文件,以及分页合并,效果还不错,你值得拥有

      【C#】未能加载文件或程序集“CefSharp.Core.Runtime.dll”或它的某一个依赖项。找不到指定的模块。

      【C#】.net core 6.0 在program时间格式统一json格式化,并列举program默认写法和简化写法

      【C#】.net core 6.0 ApiController,API控制器方法,API接口以实体类作为接收参数应该注意的点

      【C#】 SortedDictionary,查找字典中是否存在给定的关键字

      【C#】.net core 6.0 MVC返回JsonResult显示API接口返回值不可被JSON反序列化

      【C#】.net core 6.0 使用第三方日志插件Log4net,配置文件详细说明

      【C#】使用代码实现龙年春晚扑克牌魔术(守岁共此时),代码实现篇

      【C#】使用代码实现龙年春晚扑克牌魔术(守岁共此时),流程描述篇

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码