2016-08-01 11 views
0

'soap'パッケージを使用してNodeJSでSOAP Webサービスを使用する場合。これと同じように:NodeJS - SOAP Webサービスの応答のHTTPヘッダーを取得する方法

var soap = require('soap'); 
var url = 'http://example.com/wsdl?wsdl'; 
var args = {name: 'value'}; 
clientsoap.createClient(url, function(err, client) { 
    client.MyFunction(args, function(err, result, raw, soapHeader) { 
     console.log(result); 
    }); 
}); 

どのように私はMyFunctionへの応答のHTTPヘッダを得るのですか?具体的には、HTTPヘッダーの内部にCookieパラメーターが必要です。

これはNode/Expressで実行できるものですか?または、これを達成するために必要な別のパッケージがありますか?

ありがとうございます。

答えて

0

私は同じ問題に遭遇し、しばらくそれに取り組んでいます。私はクッキーを見ることができるところまで進歩を遂げましたが、彼らは私が期待した通りに正確に通っていません。何か間違っているのか、それとも私がヒットしようとしているサービスWSDLに特有なのかは分かりません。しかし、ここで私の解決策...です

soap.createClient(pathOrUrlToWSDL, function(err, client) { 
    client.myFunction(args, function(err, result, raw, soapHeader) { 
     console.log(err, result, raw, soapHeader); 
    }); 

    // -- should reach the response before the callback in client.myFunction() 
    client.on('response', function(envelope, message) { 
     // -- couldn't find documentation on this function, so I just named the variables 'envelope' and 'message' 
     console.log(message.headers); 
    }); 
}); 
1

NodeJS石鹸モジュールを格納し、クライアントに対する最後の応答ヘッダので、ちょうどあなたのコールバックでそれにアクセスする、メソッドを呼び出す:

var soap = require('soap'); 
var url = 'http://somewhere.com?wsdl'; 
var args = {name: 'value'}; 
soap.createClient(url, function(err, client) { 
    client.myFunction(args, function(err, result) { 
    console.log(client.lastResponseHeaders);   
    }); 
}); 
関連する問題