当前位置: 首页 > 知识库问答 >
问题:

Forge Api修补程序请求返回415“不支持的媒体类型”

师赤岩
2023-03-14

我正在使用锻造API。我需要执行补丁请求。当我使用邮递员发送它时,一切都很好,但是当我使用HttpquiestMessage构建请求时,我会得到一个响应-"415不支持的媒体类型"。由API留档Content-Type I设置为"应用程序/vnd.apijson"。

邮递员的请求正文

请求对象结构

JObject jsonApi = new JObject();
            jsonApi.Add("version", "1.0");
            JObject attributes = new JObject();
            attributes.Add("displayName", file.FileName);
            JObject data = new JObject();
            data.Add("type", "items");
            data.Add("id", file.ExternalFileId);
            data.Add("attributes", attributes);

            JObject request = new JObject();
            request.Add("jsonapi", jsonApi);
            request.Add("data", data);

            using (var httpClient = new HttpClient())
            {
                HttpRequestMessage http = new HttpRequestMessage
                {
                    RequestUri = new Uri(url),
                    Method = new HttpMethod("PATCH"),
                    Headers =
                    {
                        { HttpRequestHeader.Authorization.ToString(), "Bearer " + userLastAccessToken },
                        { HttpRequestHeader.Accept.ToString(), "application/vnd.api+json" }
                    }
                };  
                http.Content = new StringContent(request.ToString(), Encoding.UTF8, "application/vnd.api+json");
                HttpResponseMessage responseMessage = await httpClient.SendAsync(http);
            }

共有2个答案

姬欣怡
2023-03-14

好的,我通过这样设置ContentType解决了这个问题

http.Content = new StringContent(request.ToString(), Encoding.UTF8);
http.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/vnd.api+json");
宇文鸿畴
2023-03-14

再次尝试使用"Application/json"或使用HttpHeaders。#################################################################################################################################

http.Content = new StringContent(request.ToString(), Encoding.UTF8, "application/json");

或:

http.Content = new StringContent(request.ToString(), Encoding.UTF8);
http.Headers.TryAddWithoutValidation("Content-Type", "application/vnd.api+json");

 类似资料:
  • 我使用jax-rs和jersey创建了一个REST webservice,它应该在POST请求上使用JSON。我的web服务类如下所示: 我的歌曲课: 我有点用RESTClient,嗯,rest Client...以下是我发送的内容的截图: 当我发送它时,我得到415不受支持的媒体类型错误。有人知道为什么吗?

  • 如何使用C#在SQL Server数据库上执行CRUD操作? 例如,假设有一个带有以下列的DB表: 我希望发布一个新员工的信息到该数据库。什么是实现这一目标的有效方法? 我当前的: 下面是模型: 当我用以下输入测试我的应用编程接口时: 我得到这个错误: HTTP/1.1 415不支持的媒体类型 数据库中没有插入任何内容。 如能提供任何指导,将不胜感激。 : 根据请求生成的原始错误消息: HTTP/

  • 问题内容: 自数小时以来,我一直在尝试纠正http错误,但它仍显示不支持的页面。我在邮递员中添加标题。 这是我的Java代码 这是我的档案 问题答案: 通过和如何在响应流和请求流之间对对象进行序列化和反序列化。 将会发生的是,将从提供者的注册表中进行搜索,以查找可以处理的媒体类型。如果找不到,则Jersey无法处理该请求,并将发送415不支持的媒体类型。通常,你还应该在服务器端记录一个异常。不知道

  • 我已经创建了一个示例web服务来进行post调用。 我使用的是Jersey JAX-RS和Maven。

  • 问题内容: 我正在尝试使用jQuery 1.6(Jackson 2.1.1 和Spring 3.2.0 )通过JSON通过该方法向数据库中插入和/或更新数据。 JS代码如下。 通过URL映射的Spring控制器内部的方法如下。 服务器按照问题的含义进行响应, 415不支持的媒体类型 标头信息如下所示。 整个文件如下。 当我删除一个方法参数并仅用于接受请求参数时,它可以工作。 问题答案: 浏览器发送

  • 问题内容: 我正在使用Spring 3.2,并尝试使用ajax发布请求来提交json对象数组。如果相关,我转义了所有特殊字符。 我的HTTP状态为415。 我的控制器是: jQuery是: 我发布的数组中的对象之一的示例是以下json: 错误是: 为什么会发生此错误-有人知道吗? 问题答案: 您可以尝试使用。它没有任何问题