通过Axis2 API设置HTTP标头

时间:2011-06-24 15:05:27

标签: web-services http header axis2

我正在使用apache axis2服务器webservies,基本上我通过webservices向android客户端发送xml响应。在这里,我需要维护会话,因为每个用户的服务。我知道在webservices中维护会话是个坏主意,但是不能避免它。

实际上,当用户从android客户端调用第一个服务时,我需要生成随机唯一字符串,该随机字符串将用作会话ID。这个会话ID,我需要在http自定义标头中设置,以便android客户端能够获取它并且也可以发送它后续请求。

我想知道axis2中是否有任何API可用于在http标头上设置自定义标头信息。同样的方法我需要读取http标头,以便下一个请求我可以从标头获取会话ID。

任何人都可以就此提出建议吗?感谢

-Ravi

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

关于@MartinDürrmeier的答案的死链接,这是我在web.archive.org上找到的网页的快照:Axis2 - Setting custom HTTP Headers on a response,它帮助了我。

以下是所需的行:

MessageContext responseMessageContext =  
               MessageContext.getCurrentMessageContext().getOperationContext().getMessageContext(  
                       WSDLConstants.MESSAGE_LABEL_OUT_VALUE);  
        List<Header> headers = new ArrayList<Header>();  
        headers.add(new Header(HTTPConstants.HEADER_CONTENT_ENCODING, "identity"));  
        responseMessageContext.setProperty(HTTPConstants.HTTP_HEADERS, headers);