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