我在Android上使用SOAP Web服务时收到错误消息"Network request failed"
。在IOS上有效。这是我的代码:
var base64 = require('base-64');
//var parseString = require('react-native-xml2js').parseString;
const headers = new Headers();
headers.append('Content-Type', 'text/xml');
headers.append('SOAPAction', 'basicInvoke');
headers.append('Authorization', 'Basic ' + base64.encode("user:pass"));
sr =
'<?xml version="1.0" encoding="utf-8"?>' +
'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"'+
' xmlns:get="http://xmlns.oracle.com/orawsv/ABL/WSS_MWEB_LOGIN/GETLOGIN">'+
' <soapenv:Header/>'+
' <soapenv:Body>'+
'<get:CGETLOGIN_OUT-GETLOGINInput>'+
'<get:SQLMSGIN-GETLOGIN_IN-CIN>'+
' <get:GETLOGIN_IN>'+
' <get:LOGIN>'+login+'</get:LOGIN>'+
' <get:PASSWORD>'+password+'</get:PASSWORD>'+
' </get:GETLOGIN_IN>'+
'</get:SQLMSGIN-GETLOGIN_IN-CIN>'+
'</get:CGETLOGIN_OUT-GETLOGINInput>'+
'</soapenv:Body>' +
'</soapenv:Envelope>';
return fetch('https://xxx.xxx.xxx.xxx:1443/orawsv/ABL/WSS_MWEB_LOGIN/GETLOGIN', {
method: 'POST',
mode: 'cors',
headers: headers,
credentials: 'include',
body: sr
})
.then((response) => response)
.catch((error) => console.error(error))
我在Android清单文件中添加了android.permission.INTERNET
。