0
'(400) 잘못된 요청'이 표시됩니다. ALM REST API에 대해 완전한 인증을 시도하면 첫 번째 부분 (인증)이 성공합니다. 그리고 LWSSO_COOKIE_KEY가 표시되지만 사이트 세션은 항상 400 오류 코드로 실패합니다.ALM Rest API : 사이트 세션에서 '원격 서버에서 오류 (400)가 잘못되었습니다.'가 반환됩니다.
내가 뭘 잘못하고 있니? 아주 혼란스러워!
// Authentication XML : 0 = User, 1 = Password
private const string AuthenticationXML = @"<alm-authentication>" +
"<user>{0}</user><password>{1}</password></alm-authentication>";
baseRequestURL = settings.QualityCentreURL + "/qcbin/";
인증을 먼저 (및 성공)한다 :
이string authRequest = baseRequestURL + "authentication-point/alm-authenticate";
HttpWebRequest myauthrequest = (HttpWebRequest)WebRequest.Create(authRequest);
string xml = String.Format(AuthenticationXML, qcSettings.Username, qcSettings.Password);
byte[] Requestbytes = Encoding.UTF8.GetBytes(xml);
myauthrequest.Method = "POST";
myauthrequest.ContentType = "application/xml";
myauthrequest.ContentLength = Requestbytes.Length;
myauthrequest.Accept = "application/xml";
Stream RequestStr = myauthrequest.GetRequestStream();
RequestStr.Write(Requestbytes, 0, Requestbytes.Length);
RequestStr.Close();
HttpWebResponse myauthres = (HttpWebResponse)myauthrequest.GetResponse();
authenticationCookie = myauthres.Headers.Get("Set-Cookie");
사이트-세션 코드는 다음과 같습니다
public void GetSiteSession()
{
// Creat the web request fore site-session.
string request = baseRequestURL + "rest/site-session";
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(request);
string xml = String.Empty;
byte[] requestbytes = Encoding.UTF8.GetBytes(xml);
// Update the attributes before sending.
webRequest.Method = "POST";
webRequest.ContentType = "application/xml";
webRequest.Accept = "application/xml";
webRequest.Headers.Set(HttpRequestHeader.Cookie, authenticationCookie);
try
{
Stream requestStream = webRequest.GetRequestStream();
requestStream.Write(requestbytes, 0, requestbytes.Length);
requestStream.Close();
HttpWebResponse webRequestResponse = (HttpWebResponse)webRequest.GetResponse();
Stream responseStream = webRequestResponse.GetResponseStream();
XDocument doc = XDocument.Load(responseStream);
}
catch (System.Net.WebException except)
{
Console.WriteLine(except.Message);
}
}
나는 절단 시도, 경로 = /; Http 만 LWSSO_COOKIE_KEY에서 this question에 따라,하지만 아무 소용이 없습니다.
는내가 찾은 API 참조 (here)은 내가 이해되지 않았 음을 가능성이 큰 애매 것 같다 그것은 ... : P
게시 요청을'rest/site-session'으로 할 때 LWSSO_COOKIE_KEY를 전달합니까? – Barney
@ 바니 안녕하세요, yes - webRequest.Headers.Set (HttpRequestHeader.Cookie, authenticationCookie); 이것은 몇 가지 예제 코드에서 가져온 것이고, 올바른 방법은 그것을 설정하는 것입니까? –
authenticationCookie = "LWSSO_COOKIE_KEY = hnzW3mkqZzXzfUzQRscDZz6u-T2qm2DyG25HdVeQ-FVM0UhlPDFQ1kSp8vReWF4etsYhHFOD47DS0gfZ-E91VisYxnTNhdJ9YuhrP74RaabUMOH4OYlhn4_D6ep55PoTeZYgk-1l1dSNfdZb3NwK85yxk2YaajsPrn7cqsAlNIvvvNi3AdOIbrh9oyrS5r3LVo8cCGG_OJ2iwK9nyy8HA325bq4N7JWO7vna2NqBwS_A0Kr2h7_dVs_t_8rlHrwnkegjC2R2dUAL_V_ZZYBR-cARJu8Z4JP-1i73T2PQYGBvpJNrlvnqg9VZz8WITrl9" –