当前位置: 首页 > 知识库问答 >
问题:

无法将参数从Meteor的HTTP方法发送到SOAP方法

郭志泽
2023-03-14

我正在使用Meteor的HTTP包连接到通过SOAP消息进行通信的服务器。下面是代码(没有原始url、命名空间、方法名和参数):

HTTP.call('POST', 'http://soap-service-url.com', {
    auth: 'user:password',
    headers: {
        SOAPTarget: 'http://soap-service-url.com',
        SOAPAction: 'http://required-namespace.com/methodName',
        'Content-Type': 'text/xml'
    },
    params: {
        parameter1: "parameterValue",
        parameter2: '<?xml version="1.0"?><some-xml-goes-here>',
    },
    content: '<?xml version="1.0" encoding="utf-8"?>' +
                 '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
                                'xmlns:xsd="http://www.w3.org/2001/XMLSchema" ' +
                                'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">' + 
                   '<soap:Body> ' +
                     '<m:methodName xmlns:m="http://required-namespace.com"> ' +
                        '<m:parameter1 xsi:type="xsd:string">parameterValue</m:parameter1>' +
                        '<m:parameter2 xsi:type="xsd:string"><![CDATA[<?xml version="1.0"?><some-xml-goes-here>]]></m:parameter2>' +
                     '</m:methodName> ' +
                   '</soap:Body> ' +
                 '</soap:Envelope>'

}, function (err, result) {
    if (err) {
        console.log('error occurred..');
        console.log(err);
        return;
    }
    console.log(result);
    console.log('----------------------');
});

当我调用没有参数的方法时,我可以得到预期的输出。但是当我用参数调用方法时,我会得到意想不到的输出。由于content属性中给出的参数没有传递,所以我添加了params属性,即使这样我也无法接收预期的输出。为了测试这个问题,我创建了一个node js应用程序,并使用node-soap模块连接到同一台服务器。我可以通过client.myMethod(args,callback[,options])上的参数传递参数,并得到预期的结果。如何在使用Meteor的http包时传递参数?

共有1个答案

徐丰茂
2023-03-14

>

  • 要回答上述问题,请在http.call之前以字符串形式构建contentxml。parameter1content字符串中包含的2个值。

    上面的代码示例帮了我很大的忙,因为我无法让node-soap在Meteor中工作;总是得到错误:不能解析响应--谢谢--我知道这是一个老帖子,您现在可能找到了答案。

  •  类似资料:
    • 我在JSP页面中有一个带有下拉列表的表单 在我的行动方法中,我正在做以下事情: 它工作得很好,但是我还想发回相同的字符串,这样我就可以将“selected”字符串添加到正确的选项元素中,以便在提交表单时保持选中状态。 现在我正在用我的行动方法做这件事 但我不知道如何将条件逻辑添加到我的jsp中,使其类似于

    • 问题内容: Java-通过POST方法发送HTTP参数? 问题答案: 在GET请求中,参数作为URL的一部分发送。 在POST请求中,将参数作为请求的正文发送到标头之后。 要使用进行POST,你需要在打开连接后将参数写入连接。 这段代码可以帮助你入门:

    • 美国东部时间2019.05.14下午4:54更新-好的-下面是说明我的问题的代码-可能我花了太长时间才得到这个,而且可能太长了,但我还是Java新手。无论如何——它可以工作,打开窗体,但无法让第二个按钮看到并对“事件”做出反应。我想我现在是在“提高”活动,好吧——至少它在活动中达到了标准。但是,它仍在运行类代码,而不是通过setOnFormStateChange传入的“自定义”代码????我不确定

    • 问题内容: 我成功使用此代码通过方法发送 带有某些参数的请求 现在,我可能需要通过POST方法发送参数(即param1,param2,param3),因为它们很长。我在想为该方法添加一个额外的参数(即String httpMethod)。 我如何才能尽可能少地更改上面的代码,以便能够通过GET或发送参数POST? 我希望改变 至 本来可以解决问题的,但是参数仍然通过GET方法发送。 有没有什么方法

    • 问题内容: 我想知道哪种方法是将数据从dynamoDB发送到elasticsearch的最佳方法。 AWS开发工具包js。https://github.com/Stockflare/lambda-dynamo-to-elasticsearch/blob/master/index.js DynamoDB Logstash插件:https : //github.com/awslabs/logstash

    • 我正在为webste构建一个功能,用户可以在其中重置密码。他收到一封电子邮件,其中包含URL中生成的令牌。单击此链接时,用户将被发送到/Reset页面。该页的Get方法如下: