Jasper 服务器休息服务 returns 未经授权
Jasper server rest service returns unauthorized
我使用 .NET Http 客户端登录到 jasper 服务器。
HttpResponseMessage loginResponse = loginClient.PostAsync("http://localhost:8080/jasperserver/rest/login", formContent).Result;
IEnumerable<string> jaspsessid = loginResponse.Headers.GetValues("Set-Cookie");
使用上面的会话 ID 传递给下一个请求。
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Cookie", jaspsessid);
httpClient.DefaultRequestHeaders.Accept.Add(new
System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
StringContent requestContent = constructJasperRequestJson(reportParameters);
HttpResponseMessage generateReportRequestResponse = new HttpResponseMessage();
generateReportRequestResponse = httpClient.PostAsync(AppConstant.JASPER_SERVER_BASE_URI + AppConstant.JASPER_SERVER_REPORT_EXECUTION_URI, requestContent).Result;
在第二个请求中我得到 401.Unauthorized。
如果有人知道这个问题,请帮助我。
您可以使用 CookieContainer 来保存 session cookie,而不是设置 header。
有关示例,请参阅 How do I set a cookie on HttpClient's HttpRequestMessage。
我使用 .NET Http 客户端登录到 jasper 服务器。
HttpResponseMessage loginResponse = loginClient.PostAsync("http://localhost:8080/jasperserver/rest/login", formContent).Result;
IEnumerable<string> jaspsessid = loginResponse.Headers.GetValues("Set-Cookie");
使用上面的会话 ID 传递给下一个请求。
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Cookie", jaspsessid);
httpClient.DefaultRequestHeaders.Accept.Add(new
System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
StringContent requestContent = constructJasperRequestJson(reportParameters);
HttpResponseMessage generateReportRequestResponse = new HttpResponseMessage();
generateReportRequestResponse = httpClient.PostAsync(AppConstant.JASPER_SERVER_BASE_URI + AppConstant.JASPER_SERVER_REPORT_EXECUTION_URI, requestContent).Result;
在第二个请求中我得到 401.Unauthorized。
如果有人知道这个问题,请帮助我。
您可以使用 CookieContainer 来保存 session cookie,而不是设置 header。
有关示例,请参阅 How do I set a cookie on HttpClient's HttpRequestMessage。