WSO2 HTTPServletRequest POST请求中的对象null参数

时间:2013-12-25 00:42:03

标签: rest post wso2 httprequest wso2esb

使用WSO2 ESB 4.8.0我试图编写一个中介并通过HTTP REST模式公开它。 在axis2.xml中,我修改了这段代码。

<transportReceiver class="org.wso2.carbon.core.transports.http.HttpTransportListener" name="http">
    <parameter locked="false" name="port">8280</parameter>
    <parameter locked="false" name="non-blocking">true</parameter>
    <!--parameter name="bind-address" locked="false">hostname or IP address</parameter-->
    <!--parameter name="WSDLEPRPrefix" locked="false">https://apachehost:port/somepath</parameter-->
    <parameter locked="false" name="httpGetProcessor">org.wso2.carbon.transport.nhttp.api.PassThroughNHttpGetProcessor</parameter>
    <!--<parameter name="priorityConfigFile" locked="false">location of priority configuration file</parameter>-->
</transportReceiver>

所以现在包含中介的代理服务发布在9763端口上。 在调解员里面我有这样的代码行:

org.apache.axis2.context.MessageContext axis2MsgContext;
axis2MsgContext =  ((Axis2MessageContext) synapseMsgContext).getAxis2MessageContext();
HttpServletRequest obj = (HttpServletRequest)axis2MsgContext.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);

if (obj != null) {
    System.out.println("Method :"+ obj.getMethod());
    System.out.println("Content-type :" +obj.getContentType());
    System.out.println("Content-length :"+obj.getContentLength());
    System.out.println("Remote addtress"+obj.getSession().getLastAccessedTime());  
    obj.getParameter("param");
}

我尝试使用一些REST客户端发送POST REST请求(firefox上的海报,或chrome上的高级rest客户端)。 我意识到了

obj.getParameter("param") 
仅当我将参数作为查询字符串附加到url请求时,

才为空。 如果在post请求中我将参数放在body有效负载中,则前一个函数只返回NULL值。 怎么了?

1 个答案:

答案 0 :(得分:0)

您是否获得了GET请求的值,但没有获得其他HTTP动词的值?

以下哪些内容会返回POST请求?

 obj.getMethod()