Tôi đang cố gắng viết thư viện truy cập dịch vụ web RESTful bằng API ứng dụng khách của Jersey. Dịch vụ yêu cầu một yêu cầu đăng nhập để đặt cookie, sau đó các yêu cầu tiếp theo phải có cookie được đặt thành công. Yêu cầu đăng nhập hoạt động như mong đợi và tôi có thể truy xuất cookie trong phản hồi từ thông tin đăng nhập, nhưng dường như không thể thêm cookie vào các yêu cầu tiếp theo. Bất cứ ai có thể nói những gì tôi có thể làm sai. Đây là mã tạo yêu cầu:Khách hàng Jersey: Thêm cookie vào yêu cầu
MultivaluedMap<String,String> qs = new MultivaluedMapImpl();
qs.add("xml", this.toXmlString());
WebResource wr = client.resource(Constants.ServiceURL);
if (CookieJar.Cookies != null)
{
for (NewCookie c : CookieJar.Cookies)
{
logger.debug("Setting cookie " + c.getName());
wr.cookie(c);
}
}
ClientResponse response = wr.queryParams(qs).get(ClientResponse.class);
Trong khi yêu cầu không thành công, dịch vụ sẽ trả lời lỗi ứng dụng "Không có phiên". Dưới đây là những dấu vết log của chuỗi yêu cầu:
Jul 15, 2011 5:20:33 PM com.sun.jersey.api.client.filter.LoggingFilter log
INFO: 1 * Client out-bound request
1 > GET https://www.company.com/TrackerXMLInterface.asp?xml=%3Cxml%3E%3CTRANTYPE%3ELOGIN%3C/TRANTYPE%3E%3CTRANPARMS%3E%3CLOGINID%3Emylogin%3C/LOGINID%3E%3CPASSPHRASE%3EBa1b2c3%3C/PASSPHRASE%3E%3C/TRANPARMS%3E%3C/xml%3E
Jul 15, 2011 5:20:35 PM com.sun.jersey.api.client.filter.LoggingFilter log
INFO: 1 * Client in-bound response
1 < 200
1 < Date: Fri, 15 Jul 2011 22:20:35 GMT
1 < Content-Length: 150
1 < Set-Cookie: ASPSESSIONIDSUBSBSRR=GBGOKGJDAAHCNDDHPBFICFIH; secure; path=/
1 < Content-Type: text/html
1 < Server: Microsoft-IIS/7.0
1 < X-Powered-By: ASP.NET
1 < Cache-Control: private
1 <
<XML><TRANRESULTS><TRANRETURNCODE>L00</TRANRETURNCODE><TRANRETURNMSG>Valid Login </TRANRETURNMSG><TRANDETAIL></TRANDETAIL></TRANRESULTS></XML>
[continued below]
Tôi đang nghĩ đến các yêu cầu sau đây cần có cookie trong tiêu đề:
Jul 15, 2011 5:20:35 PM com.sun.jersey.api.client.filter.LoggingFilter log
INFO: 1 * Client out-bound request
1 > GET https://www.company.com/TrackerXMLInterface.asp?xml=%3Cxml%3E%3CTRANTYPE%3ESSNLAST%3C/TRANTYPE%3E%3CTRANPARMS%3E%3CSSN%3E123456789%3C/SSN%3E%3CLASTNAME%3ESchmoe%3C/LASTNAME%3E%3C/TRANPARMS%3E%3C/xml%3E
Jul 15, 2011 5:20:35 PM com.sun.jersey.api.client.filter.LoggingFilter log
INFO: 1 * Client in-bound response
1 < 200
1 < Date: Fri, 15 Jul 2011 22:20:35 GMT
1 < Content-Length: 150
1 < Set-Cookie: ASPSESSIONIDSUBSBSRR=HBGOKGJDIAPBBEIGLOILDJDN; secure; path=/
1 < Content-Type: text/html
1 < Server: Microsoft-IIS/7.0
1 < X-Powered-By: ASP.NET
1 < Cache-Control: private
1 <
<XML><TRANRESULTS><TRANRETURNCODE>R04</TRANRETURNCODE><TRANRETURNMSG>No Session </TRANRETURNMSG><TRANDETAIL></TRANDETAIL></TRANRESULTS></XML>
Bất kỳ hướng dẫn về vấn đề này được nhiều đánh giá cao.
lưu các thử nghiệm của tôi, nhờ –
không hoạt động cho tôi ngay cả sau khi sửa chữa –