2017-06-08 3 views
0

Ich bin ziemlich neu im Umgang mit JSON-Daten und Web-API, aber ich bin gerade dabei, eine Anwendung zu erstellen, um mein Wissen über sie zu erweitern.Veröffentlichen von JSON-String in WebApi #

Im Moment kann ich Anfragen bekommen und diese funktionieren gut, aber ich habe Probleme mit den Posts. Ich versuche, JSON-Daten an Jira Confluence zu posten, um eine neue Seite zu erstellen.

Auf https://developer.atlassian.com/confdev/confluence-server-rest-api/confluence-rest-api-examples es gibt den Code unten ein curl Anfrage

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

ich zur Zeit den Code unten bin mit zu machen und es kommt wieder mit dem Status 200, aber ich sehe nicht, die erstellte Seite bei Konfluenz. Ich habe mich gefragt, ob jemand mir helfen könnte

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; 
+2

Es ist schwer, herauszufinden, was mit dem angegebenen Informationen falsch läuft. Können Sie [Fiddler] (http://www.telerik.com/fiddler) ausführen, die Anfrage/Antwort erfassen und den Inhalt hier posten? – coolerfarmer

+0

neuer StringContent (lol, Encoding.UTF8, "application/json"); Ich sehe nicht "lol" hier definiert. Hat es hier eine Bedeutung? –

+0

Hallo sorry statt lol, ich habe Antwort-String verwendet. Ich habe Fiddler benutzt und es zeigt eine 301 Antwort, also glaube ich, dass die API verschoben wurde, aber auf der Confluence-Website zeigt sie immer noch die API als den gleichen Ort https://docs.atlassian.com/confluence/REST/latest/ –

Antwort

-1

Ihre Auth-Header sieht falsch ... Sie das Leerzeichen fehlen nach „Grund“ es wie dieses „Grund xxx“ sein sollte.

Bitte nehmen Sie sich einen Blick auf das folgende Dokument:

https://developer.atlassian.com/confdev/confluence-server-rest-api/confluence-rest-api-examples?_ga=2.72183699.1804458933.1496916716-1816616270.1496916716#ConfluenceRESTAPIExamples-Createanewpage

Grüße

Craig

+0

Die Header waren in Ordnung, das Problem war, dass sie die API nach /wiki verschoben haben/rest/api/content/ –

+0

Außerdem ist diese Antwort falsch. 'System.Net.Http.Headers.AuthenticationHeaderValue' verwendet ein Schema als zweiten Parameter. Schema 'Basic' ist gültig! Wenn dies nicht die Antwort war, bitte nicht als akzeptiert markieren. Beantworte deine eigene Frage und markiere sie. – jAC

Verwandte Themen