SOAP调用以静默方式失败

SOAP调用以静默方式失败,soap,salesforce,apex-code,force.com,callout,Soap,Salesforce,Apex Code,Force.com,Callout,我已经成功地从WSDL生成了一个Apex类,并且能够通过手动设置HTTP授权头在远程服务器上进行身份验证。我在远程服务器上仔细检查过 HTTP身份验证工作正常 Web服务返回正确的响应XML 没有抛出错误(整个代码中没有try/catch语句) 然而,如果我检查webservice调用的结果,我总是会得到一个“null”对象。我怀疑Salesforce无法从XML响应生成对象。你知道为什么会这样吗?我可以试试吗?有人已经有同样的问题了吗 这是我打电话的方式: String user = 'u

我已经成功地从WSDL生成了一个Apex类,并且能够通过手动设置HTTP授权头在远程服务器上进行身份验证。我在远程服务器上仔细检查过

  • HTTP身份验证工作正常
  • Web服务返回正确的响应XML
  • 没有抛出错误(整个代码中没有try/catch语句)
然而,如果我检查webservice调用的结果,我总是会得到一个“null”对象。我怀疑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
String user='username';
字符串传递='secret';
MyService.InfoSoap soapClient=新建MyService.InfoSoap();
Blob raw=Blob.valueOf(用户+':'+通过);
字符串标记=EncodingUtil.base64Encode(原始);
soapClient.INPUTTPHEADERS\u x=新映射{
“授权”=>“基本”+令牌
};
整数externalId=1234;
系统调试(
soapClient.getObject(外部ID)
);
//将“null”打印到调试日志

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