SOAPサービスを介してWebサービスから何かをダウンロードする必要があります。インターフェイスのドキュメントはかなり疎ですので、リクエストする方法を理解するのが難しいです。SOAPリクエストを作成する方法を理解するのに問題がある
This is the .wsdl specification.
考え方は次のとおりです。
- は、セッションキー(私は首尾よくこれをしなかった)
- 利用可能なデータを要求するためにセッションキーを使用して見るにはログイン(ここで、I問題あり)
- このキーを使用して特定のデータを要求する
- もう一度ログアウトします
セッションキーを取得してデータボックスのリクエストとともに使用しています。残念ながら、私は応答としてHTTP 404を取得しているに過ぎず、セッションキーが間違っている場合(たとえば "asdfg")に404が表示されるため、問題を見つける方法がわかりません。
これは私が遣わすXMLです:
<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>
<getDatabox xmlns="https://finanzonline.bmf.gv.at/fon/ws/databox">
<tid>${tid}</tid>
<benid>${benid}</benid>
<id>${sessionToken}</id>
<erltyp>${erltyp}</erltyp>
<ts_zust_von>20-08-2017</ts_zust_von>
<ts_zust_bis>25-08-2017</ts_zust_bis>
</getDatabox>
</soap:Body>
</soap:Envelope>
これは私が(私は例のための方法で初期化されxmlDataboxのように、そこからいくつかの醜さを取り除く)使用しています方法です:
function getDataBox(sessionToken, erltyp) {
return new Promise((resolve, reject) => {
var body = [];
var https = require("https");
var req = https.request(optionsDatabox, res => {
res.setEncoding("utf8");
res.on("data", chunk => {
console.log("daty");
console.log(chunk);
body.push(chunk);
});
res.on("end",() => {
console.log("STATUSCODE: " + res.statusCode);
resolve(body.join(""));
});
res.on("error", err => {
reject(err);
});
});
req.write(xmlDatabox);
req.end();
});
}
これで、すべて送信されるのですべて送信されます。また、メソッドとXMLは(重要なものを除いて)getDatabox()とloginRequest()(これは動作します)と同じです。唯一の応答はHTTPS 404です。
何が問題なのですか?
次回のこの欲求不満を防ぐにはどうすればよいですか? (どのメソッドを使用するかをすぐに知るなど)
EDIT:私はソープモジュールを使用していません。これは成功しなかったためです。