向Redmine API发送POST请求时如何解决“ 422无法处理的实体”?

亚伦·达萨尼(Aaron Dasani)

我正在尝试使用redmine rest api创建一个Wiki页面。身份验证成功,但是由于422错误而未创建Wiki页面。

Redmine文档说:“当尝试使用无效或缺少属性参数创建或更新对象时,您将收到422 Unprocessable Entity响应。这意味着无法创建或更新对象。”

但是我似乎可以找出我的困境。当我提出第二个请求时,问题就解决了-“输入请求”。

所以我们知道问题出在那部分。

我的猜测是,它要么是文件路径,要么是内容类型。

这是我到目前为止所拥有的...

const wordDocument="C:\Users\adasani\Desktop\practice\RedmineApi/RedmineText.txt";

creatingWikiPage_Request(wordDocument);

function creatingWikiPage_Request(wordDocument) {

    axios({
        method: 'post',
        url: '<redmine_url>/uploads.json',
        headers: { 'Content-Type': 'application/octet-stream' },
        params: { 'key': '<api-key>' },
        data: wordDocument
    })
        .then(function (response) {
            console.log("succeeed--->  ");
            console.log(response.data.upload.token)
            axios({
                method: 'put',
                url: '<redmine_url>/projects/Testing/wiki/WikiTesting.json',
                headers: { 'Content-Type': 'application/octet-stream' },
                params: { 'key': '<api-key>' },
                data: {

                    "wiki_page": {
                        "text": "This is a wiki page with images, and other files.",
                        "uploads":[ 
                            { "token": response.data.upload.token, "filename": "RedmineText.txt", "content-type": "text/plain" }
                        ]
                    }

                }

            })
                .then(response => {
                    console.log("PUT is Succeed-->>>")
                    console.log(response)
                })
                .catch(error => {
                    console.log("Error-->>")
                    console.log(error.response)
                })

        })
        .catch(function (error) {
            console.log("failed----->  ");
            console.log(error.response.statusText, "-->", error.response.status);
            console.log(error.response.headers)
            console.log(error.message)
            console.log("failed----->  ");
        })

}


我想看到在Redmine仪表板中创建了一个Wiki页面,但是出现422错误。

霍尔格·贾斯特

您正在将更新请求发送到JSON API,即<redmine_url>/projects/Testing/wiki/WikiTesting.json使用Content-Type: application/octet-stream因此,Redmine无法解析PUTed有效负载,因为它不知道数据的格式。

为解决此问题,您应始终确保在发布数据时设置正确的内容类型。在这种情况下,将任何JSON格式的数据发送到Redmine时,应将Content-Type标头设置为application/json

请注意,原则上,您可以将XML数据发送到Redmine并取回JSON。输出格式取决于以URL(.json.xml结尾的文件,您发送的数据格式始终由Content-Type标头标识

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Mapbox导航api返回422无法处理的实体

使用快速API发布要求'422无法处理的实体'

如何从422无法处理的实体响应中获取错误消息

向Tomcat发送POST请求时如何解决浏览器中的Javascript fetch API错误?

使用C#将WebRequest发送至时出错:(422)无法处理的实体

从Angular到GO的HTTP请求=>状态码:422无法处理的实体

无法处理的实体:在 Laravel 中使用 filepond 异步上传文件时出现 422

422(不可处理实体)POST 使用 rails

向 API 发送 POST 请求时出错(无法发送具有此动词类型的正文)

如何在golang中使用“ 422无法处理的实体(WebDAV)”或任何其他自定义http状态代码

如何解决向保险柜写入错误:提出API请求时出错

如何以编程方式向Redmine注册文件?

无法向旧网站发送 POST 请求

如何反序列化422无法处理的实体错误模型并将错误绑定到asp.net核心剃刀页面模型状态

SendAsync()返回422无法处理的实体

Guzzle 422无法处理的实体错误

422 Laravel中的AJAX POST请求后出现不可处理的实体错误

注册后如何解决向ManyToMany添加实体的问题

MS Bot,直接API,无法发送活动,如何解决?

无法弄清楚如何向 OKEx 发送签名的 POST 请求

axios 发布来自反应的 422(不可处理实体)的请求错误

Rails:Rails中的POST 422(不可处理实体)?是由于路线还是控制器?

Rails中的POST 422(不可处理实体)?由于路线还是控制器?

通过金额折扣时,贝宝订单v2创建返回422(不可处理实体)

改造2-响应状态为422时,响应主体为空(不可处理实体)

Angular 中的 422(不可处理实体)在 Laravel 登录 api 中发布

无法向 Spring 资源服务器发送 POST 请求

无法向 Google Apps 脚本发送 POST 请求

当我从 Android 向 Flask Web 服务发送参数时,如何解决“SSL 库失败”?