gpt4 book ai didi

file-upload - 向Redmine API发送POST请求时如何修复 '422 Unprocessable Entity'?

转载 作者:行者123 更新时间:2023-12-05 00:58:39 30 4
gpt4 key购买 nike

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

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

但我似乎可以找出我哪里搞砸了。当我执行第二个请求 - “PUT REQUEST”时,问题出现了。

所以我们知道问题出在该部分的某个地方。

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

这是我目前所拥有的......

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.jsonContent-Type: application/octet-stream .因此,Redmine 无法解析 PUTed 有效负载,因为它不知道数据的格式。

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

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

关于file-upload - 向Redmine API发送POST请求时如何修复 '422 Unprocessable Entity'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56711503/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com