【发布时间】:2015-09-25 11:12:07
【问题描述】:
我正在从 Confluence 的 SOAP API 迁移到使用 their REST API。我看到有支持 for adding attachments to a page (by doing a POST) 但我遇到了让它工作的问题(我收到 403: Forbidden 错误消息)。我有其他“获取”项目通过其余 api 工作正常,但做附件帖子似乎一直失败。
这是我当前的代码(给定一个特定的文件名):
byte[] rawData = File.ReadAllBytes(filename);
var pageId = "11134";
var url = new Uri("http://example.com:9088/rest/api/content/" + pageId + "/child/attachment");
var requestContent = new MultipartFormDataContent();
var imageContent = new ByteArrayContent(rawData);
imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse(attachement.contentType);
requestContent.Add(imageContent, "file", attachement.fileName);
requestContent.Headers.Add("X-Atlassian-Token", "nocheck");
你能看看我上面做错了什么吗?
【问题讨论】:
-
Confluence 文档保持:“如果附件被禁用或您无权向此内容添加附件,则返回。”。您是否尝试过在此处docs.atlassian.com/confluence/REST/latest/#d3e787 的页面中使用 CURL 并查看它是否仍返回 403?
-
我刚刚尝试了 curl,但出现错误 curl Recv failure: Connection was reset。我使用了这个语法 curl -D- -u user:pwd -X POST -H "X-Atlassian-Token: nocheck" -F "file=@test.txt" htttp://example:9088/rest/api/content /71105117/child/attachment(注意:我在此评论中的“http”中添加了一个额外的“t”,因此不会尝试将其转换为超链接
-
@SimonMourier - 另外,上面的 C# 代码是否需要其他身份验证?
-
哦,是的,可能您需要在请求中添加一些凭据。
-
你检查过 Confluence 的设置吗? Confluence 允许使用附件吗?系统-> 选择高级-> 附件
标签: c# rest httpclient confluence confluence-rest-api