Добрый день, StackOverflow, в настоящее время я интегрирую SOAP API проверки кредитоспособности, мне дали пример кода без файла package.json , поэтому я понятия не имею, что такое среда разработки. Вот пример кода, который мне дали:
var request = require('request');
var fs = require('fs');
var bsplit = require('buffer-split');
//process.env.http_proxy = 'http://host:port';
var xmlData = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webServices/">' +
'<soapenv:Header/>' +
'<soapenv:Body>' +
' <web:DoNormalEnquiryStream>' +
' <request>' +
' <pUsrnme>*****</pUsrnme>' +
' <pPasswrd>*****</pPasswrd>' +
' <pVersion>1.0</pVersion>' +
' <pOrigin>QA-SOAPUI</pOrigin>' +
' <pOrigin_Version>1.0</pOrigin_Version>' +
' <pInput_Format>XML</pInput_Format>' +
' <pTransaction>' +
' <![CDATA[<Transactions>' +
' <Search_Criteria>' +
' <CS_Data>Y</CS_Data>' +
' <CPA_Plus_NLR_Data>Y</CPA_Plus_NLR_Data>' +
' <Deeds_Data>N</Deeds_Data>' +
' <Directors_Data>N</Directors_Data>' +
' <Identity_number></Identity_number>' +
' <Surname></Surname>' +
' <Forename></Forename>' +
' <Forename2/>' +
' <Forename3/>' +
' <Gender>M</Gender>' +
' <Passport_flag>N</Passport_flag>' +
' <DateOfBirth>19820914</DateOfBirth>' +
' <Address1></Address1>' +
' <Address2></Address2>' +
' <Address3/><Address4/>' +
' <PostalCode></PostalCode>' +
' <HomeTelCode/>' +
' <HomeTelNo/>' +
' <WorkTelCode/>' +
' <WorkTelNo/>' +
' <CellTelNo/>' +
' <ResultType>JPDF2</ResultType>' +
' <RunCodix>N</RunCodix>' +
' <Adrs_Mandatory>N</Adrs_Mandatory>' +
' <Enq_Purpose>12</Enq_Purpose>' +
' <Run_CompuScore>N</Run_CompuScore>' +
' <ClientConsent>Y</ClientConsent>' +
' </Search_Criteria>' +
' </Transactions>]]>' +
' </pTransaction>' +
' </request>' +
' </web:DoNormalEnquiryStream>' +
' </soapenv:Body>' +
' </soapenv:Envelope>';
request({
url: "api.myapiurl.com/soap-api",
encoding:null,
method: "POST",
headers: {
"content-type": "text/xml"
},
body: xmlData
}, function (error, response, body){
var delim = new Buffer('--uuid');
var result = bsplit(body,delim);
var attBuffs = [];
var attBuffsStartIndex = [];
for(var i = 0; i < result.length; i++){
if(result[i].toString().indexOf("Content-Type: application/octet-stream") > 0){
attBuffs.push(result[i]);
var trimmedString = result[i].toString();
attBuffsStartIndex.push(trimmedString.indexOf("Content-Transfer-Encoding: binary")+37);
}
}
fs.open('JsonFile.json', 'w', function (err, fd) {
if (err) {
throw 'error opening file: ' + err;
}
fs.write(fd, attBuffs[0], attBuffsStartIndex[0], attBuffs[0].length - attBuffsStartIndex[0], null, function (err) {
if (err) throw 'error writing file: ' + err;
fs.close(fd, function () {
console.log('JSON File written to file');
})
});
});
fs.open('PdfFile.pdf', 'w', function (err, fd) {
if (err) {
throw 'error opening file: ' + err;
}
fs.write(fd, attBuffs[1], attBuffsStartIndex[1], attBuffs[1].length - attBuffsStartIndex[1], null, function (err) {
if (err) throw 'error writing file: ' + err;
fs.close(fd, function () {
console.log('PDF File written to file');
})
});
});
});
У меня возникли некоторые трудности при запуске этого кода. Я подумал, что ему может понадобиться [RequireJS API], но после некоторых исследований я твердо убежден, что на самом деле это Запрос HTTP-клиента . Я действительно изо всех сил пытался запустить этот пример кода. Любая помощь будет принята с благодарностью!
Добавление Я знаю, что для этого требуется nodejs. Но я не смог выяснить, как продвигаться дальше.
Добавление
Если кому-то интересны модули нативных узлов, такие как net, fs и т. д. не предназначены для запуска из браузера, поэтому этот код все равно не будет работать.