2017-11-13 5 views
0

Ich habe es erfolgreich geschafft, mich mit meiner ALM-Instanz über die Rest-API anzumelden/zu authentifizieren, aber jetzt bin ich verwirrt darüber, was ich tun sollte, um einen neuen Testsatz zu erstellen .ALM Rest API (C#): Erstellen des Testsets

private string CreateTestSetURL = "{0}rest/domains/{1}/projects/{2}/test-sets"; 

// Parameters : 0 = Open Date, 1 = Description, 2 = parent, 3 = Name. 
private const string TestSetsXML = "<Entity Type=\"test-set\">" + 
    "<Fields>" + 
     "<Field Name=\"status\"><Value>Open</Value></Field>" + 
     "<Field Name=\"open-date\"><Value>{0}</Value></Field>" + 
     "<Field Name=\"subtype-id\"><Value>hp.pc.test-set.performance</Value></Field>" + 
     "<Field Name=\"description\"><Value>{1}</Value></Field>" + 
     "<Field Name=\"parent-id\"><Value>{2}</Value></Field>" + 
     "<Field Name=\"name\"><Value>{3}</Value></Field>" + 
    "</Fields>" + 
"</Entity>"; 

string requestURL = String.Format(TestSetsURL, baseRequestURL, qcSettings.QCDomain, qcSettings.QCProject); 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(requestURL)); 

string xml = String.Format(TestSetsXML, "2015-12-17", "test please ignore", parent, "TestPleaseIgnore"); 
byte[] Requestbytes = Encoding.UTF8.GetBytes(xml); 

//request. 
request.CookieContainer = authenticationCookieContainer; 
request.Method = "POST"; 
request.ContentType = "application/xml"; 
request.Accept = "application/xml"; 
request.ContentLength = Requestbytes.Length; 

Stream requestStream = request.GetRequestStream(); 
requestStream.Write(Requestbytes, 0, Requestbytes.Length); 
requestStream.Close(); 

var response = request.GetResponse(); 
var responseStream = response.GetResponseStream(); 

Das Ergebnis ist dieser Fehler: "Der Remoteserver hat einen Fehler zurückgegeben:. (400) Bad Request"

Wahrscheinlich ein paar Fragen:

  1. Sollte es einen Beitrag sein? - nach documentation here sollte es sein ..
  2. Ist das Format korrekt?

UPDATE: Ich habe versucht, Barneys Vorschlag, aber ich bin noch immer (400) Bad Request.

Frage aktualisiert mit Änderungen.

+0

Der Test-Info sollte Teil Ihrer Anfrage Körper, nicht in die Query-String sein. – Barney

+1

@Barney Meinst du, es sollte ein XML sein, das du passierst? –

+0

Haben Sie variable Eltern irgendwo initialisiert? – Barney

Antwort

0

Sie müssen dem Server zwei wichtige Dinge geben (Daten = Ihre_Xml und Header = für die Autorisierung) Dann sollten Sie kein Problem haben;) Wie auch immer ist der Fehlercode 400 oder 500? In der Regel 500 ist eine schlechte Anfrage/400 ist eine schlechte Autorisierung

Kann es sein, dass Ihr Benutzer nur lesen Rechte und es ist nicht in der Lage zu erstellen?

Hoffnung, dass Sie in der Zwischenzeit Ihr Problem gelöst;)

Verwandte Themen