使用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值。 怎么了?
答案 0 :(得分:0)
您是否获得了GET请求的值,但没有获得其他HTTP动词的值?
以下哪些内容会返回POST请求?
obj.getMethod()