Jasper服务器休息服务未经授权返回

时间:2015-06-16 15:38:58

标签: c# jasper-reports httpclient jasperserver

使用.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。

如果有人知道这个问题,请帮助我。

1 个答案:

答案 0 :(得分:2)

您可以使用CookieContainer来保存会话cookie,而不是设置标题。

有关示例,请参阅How do I set a cookie on HttpClient's HttpRequestMessage

相关问题