我们已经将Web服务的WSDL文件转换为salesforce apex类。Web服务正在接收Apache axis Stub身份验证用户名和密码格式的身份验证凭据。
下面是示例Apache axis Stub认证用户名和密码代码。
我的问题是……我们可以在salesforce Apex类中获得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);
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头"部分。