我已经成功地从我的 WSDL 生成了一个 Apex 类,并且能够通过手动设置 HTTP 授权标头在远程服务器上进行身份验证。我已经在远程服务器上仔细检查了......</p>
- HTTP 身份验证工作正常
- 网络服务返回正确的响应 XML
- 没有错误被抛出(整个代码中没有 try/catch 语句)
但是,如果我检查 web 服务调用的结果,我总是会得到一个“空”对象。我怀疑 Salesforce 无法从 XML 响应中生成对象。关于为什么会这样以及我可以尝试什么的任何想法?有人已经有同样的问题了吗?
这就是我打电话的方式:
String user = 'username';
String pass = 'secret';
MyService.InfoSoap soapClient = new MyService.InfoSoap();
Blob raw = Blob.valueOf( user + ':' + pass );
String token = EncodingUtil.base64Encode( raw );
soapClient.inputHttpHeaders_x = new Map<String, String>{
'Authorization' => 'Basic ' + token
};
Integer externalId = 1234;
System.debug(
soapClient.getObject(externalId)
);
// prints "null" to the debug log