【发布时间】:2017-11-13 13:38:51
【问题描述】:
我已经成功地使用 Rest API 登录/验证了我的 ALM 实例,但我现在对如何创建新测试集感到困惑。
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();
结果是这个错误: “远程服务器返回错误:(400) Bad Request。”
可能有几个问题:
- 应该是一个帖子吗? - 根据documentation here 应该是..
- 格式是否正确?
更新: 我已经尝试过 Barneys 的建议,但我仍然收到 (400) 错误请求。
问题已随更改更新。
【问题讨论】:
-
测试集信息应该是请求正文的一部分,而不是查询字符串中。
-
@Barney 你的意思是它应该是你传递的 XML 吗?
-
你是否在某处初始化了变量 parent?
-
是的,它设置为我认为正确的......难道就这么简单吗??
标签: c# rest alm hp-quality-center