【问题标题】:WSO2 HTTPServletRequest Object null parameters in POST requestWSO2 HTTPServletRequest POST请求中的对象空参数
【发布时间】:2013-12-25 00:42:02
【问题描述】:

我正在尝试使用 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 客户端(firefox 上的海报,或 chrome 上的高级 REST 客户端)发送 POST REST 请求。 我意识到了

obj.getParameter("param") 

仅当我将参数作为查询字符串附加到 url 请求时才为空。 如果在发布请求中我将参数放入正文有效负载中,则前一个函数仅返回 NULL 值。 怎么了?

【问题讨论】:

    标签: rest post wso2 httprequest wso2esb


    【解决方案1】:

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

    如果是 POST 请求,以下返回什么?

     obj.getMethod()
    

    【讨论】:

    • 我正在尝试获取在消息正文内的 POST 请求中发送的参数。我正在使用 Mozilla Poster 或 Google Chrome Plugin:Advanced Rest Client 等 REST 客户端。我将参数附加到请求正文中,然后尝试使用 obj.getParameter("param") 取回它们...在这种情况下,我得到 Null 值。另一方面,只有当我将请求 URL 中的参数作为查询附加时,我才会得到 NULL 值(但这对于 POST 请求是错误的,而对于 GET 请求是正确的)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2014-10-03
    • 2023-03-27
    • 2020-06-26
    • 1970-01-01
    • 2012-06-18
    相关资源
    最近更新 更多