Salseforce Apex类支持Apache axis Stub身份验证



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

下面是示例Apache axis 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 axis Stub身份验证用户名和密码功能吗?

Apex Stub支持HTTP Headers认证,它也支持Apache axis 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

请帮我解决这个问题

将顶点代码转换为下面的代码后,我成功地解决了这个问题。

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认证过程。如果有其他认证方法,请告知

看来你已经找到解决办法了。

作为参考,请查看在线文档中关于基本身份验证头的"在Web服务Callout上发送HTTP头"部分。

最新更新