【发布时间】:2017-06-08 08:42:41
【问题描述】:
我对处理 json 数据和 web api 还很陌生,但我目前正在创建一个应用程序来进一步了解它们。
目前我可以收到请求并且这些工作正常,但是我遇到了帖子问题。我正在尝试将 json 数据发布到 Jira Confluence 以创建新页面。
在https://developer.atlassian.com/confdev/confluence-server-rest-api/confluence-rest-api-examples 上,它提供了以下代码来发出 curl 请求
curl -u admin:admin -X POST -H 'Content-Type: application/json' -d'{"type":"page","title":"new page",
"ancestors":[{"id":456}], "space":{"key":"TST"},"body":{"storage":{"value":
"<p>This is a new page</p>","representation":"storage"}}}'
http://localhost:8080/confluence/rest/api/content/ | python -mjson.tool
我目前正在使用下面的代码,它返回状态为 200,但我没有在 confluence 上看到创建的页面。我想知道是否有人可以帮助我
HttpClient _webRequest = new HttpClient();
byte[] cred = UTF8Encoding.UTF8.GetBytes(credentials);
_webRequest.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(cred));
_webRequest.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
string response = "{\"type\":\"page\",\"title\":\"new page\",\"ancestors\":[{\"id\":40635756}],\"space\":{\"key\":\"VG\"},\"body\":{\"storage\":{\"value\":\"<p>This is a new page</p>\",\"representation\":\"storage\"}}}"
var content = new StringContent(lol, Encoding.UTF8, "application/json");
var result = _webRequest.PostAsync("http://jirasite/confluence/rest/api/content/", content).Result;
【问题讨论】:
-
很难弄清楚给定信息出了什么问题。您可以运行Fiddler,捕获请求/响应并在此处发布内容吗?
-
new StringContent(lol, Encoding.UTF8, "application/json");我没有看到这里定义的“lol”。这里有什么意义吗?
-
嗨,对不起,我用的是响应字符串,而不是大声笑。我使用了 fiddler,它显示了 301 响应,所以我认为 API 可能已经移动,但在 confluence 网站上它仍然将 API 显示为同一位置 docs.atlassian.com/confluence/REST/latest
-
只是出于好奇,上面提到的200状态码是怎么得到的?
-
200 只是说它已发送我想,当我加载提琴手时,我看到了 200 请求,然后也看到了 301 响应