@TO关于HTTP请求返回415错误UnsupportedMediaType定位问题
前言:这是我的第一篇博客,很多知识也是正在学习和积累中。以后会记录一些技术上遇到的问题和总结一些知识点
。 今天在工作中,发现我再调用甲方API接口的时候,发现一个奇怪的问题,就是我写代码调用甲方API接口时返回HTTP状态码是415,返回错误:The requested media type is not supported. Supported media types are "application/json"很奇怪对应的Headers也写上请求的类型但就是不好使
1.正常调试 是可以成功的(不太清楚底部的一些原理哈轻喷) 2.先用调式工具进行抓包看下请求信息
就很不顺嘎嘎报错,502 [Fiddler] The connection to ‘api.tms.heyworld.com’ failed. System.Security.SecurityException Failed to negotiate HTTPS connection with server.fiddler.network.https> HTTPS handshake to api.tms.heyworld.com (for #13) failed. System.Security.Authentication.AuthenticationException 调用 SSPI 失败,请参见内部异常。 < 要求的函数不受支持 Win32 (SChannel) Native Error Code: 0x80090302 找找相关文章,有个大佬文章写的 这个可以通过修改以下配置解决 : Tools / Options / HTTPS / 点击 protocols 链接 修改为 :;;ssl3;tls1.0;tls1.2 就OK
一直是出现415错误,但是怎么修改都是报这个错,考虑了下,接口是通的,甲方应该设置请求格式那么用代码进行试一下, HttpClient DefaultRequestHeaders Accept 请求发送的标题 HttpContent Headers ContentType 请求发送内容标头 正常请求接口我们加上
httpClient.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
就是正常的JSON请求 那么把甲方限制了请求参数有JSON格式要求那么我们就加上内容标头值
httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
成功解决了!
路漫漫其修远兮 吾将上下而求索
加油 朋友们!
|