1

我已经成功地从我的 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
4

1 回答 1

2

我们今天设法解决了这个问题,为响应中的每个 XML 元素添加了一个命名空间。

于 2013-05-16T11:01:13.137 回答