Salesforce Apex类支持Apache轴Stub身份验证

时间:2011-09-22 14:30:42

标签: web-services salesforce apex-code axis

我们已将Web服务的WSDL文件转换为salesforce apex类。 Web Service正在以Apache轴Stub身份验证用户名和密码格式接收身份验证凭据。

下面是示例Apache轴Stub身份验证用户名和密码代码。

Service service = new  XYZServiceLocator();
URL endpointURL = new URL("https://urllink");
XYZServiceSoapBindingStub stub = new XYZServiceSoapBindingStub(endpointURL, service);
stub.setUsername("username");// void org.apache.axis.client.Stub.setUsername(String username)
stub.setPassword("password");// void org.apache.axis.client.Stub.setPassword(String Password)
QueryResponse qresp = stub.webServiceCall(qr);

我的问题是。我们可以在salesforce Apex类中获取Apache轴Stub身份验证用户名和密码功能。

由于Apex Stub支持HTTP Headers身份验证,它是否也支持Apache轴Stub身份验证?

以下是Salesforce Apex存根HTTP标头身份验证代码

String myData = 'username:password';
Blob hash = Crypto.generateDigest('SHA1',Blob.valueOf(myData));
encodedusernameandpassword = EncodingUtil.base64Encode(hash);
XYZBillingStub.inputHttpHeaders_x.put('Authorization','Basic ' + encodedusernameandpassword );// SALESFORCE STUB
XYZBilling.query(queryReq )// Web Service call

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

将顶点代码转换为以下代码后,我成功解决了问题。

String myData = 'username:password';
encodedusernameandpassword = EncodingUtil.base64Encode(Blob.valueOf(myData));
XYZBillingStub.inputHttpHeaders_x.put('Authorization','Basic ' + encodedusernameandpassword );// SALESFORCE STUB
XYZBilling.query(queryReq )// Web Service call

这是一个简单的命中和试用解决方案,我认为Salseforce apex功能仅支持输入HTTP Headers身份验证过程。如果有其他方法可以进行身份​​验证,请提及。

答案 1 :(得分:0)

看起来你已经找到了解决方案。

如需参考,请查看在线文档的Sending HTTP Headers on a Web Service Callout部分,了解基本身份验证标题。