我正在Android中开发一个使用SAP NetWeaver网关提供的OData服务的应用程序,我正在使用Odata4J库来消费服务。
ODataConsumer consumer = ODataConsumers
.create("https://sapes1.sapdevcenter.com/sap/opu/odata/IWFND/RMTSAMPLEFLIGHT/");
当我从网络浏览器点击this URL时,它会提示"需要验证"对话框,我必须输入我的用户名和密码,然后我可以看到服务文档,架构文档等。
我的问题是:如何使用Odata4J通过我的请求传递凭据?成功验证后是否收到任何类型的令牌以验证进一步的请求?
答案 0 :(得分:0)
您可以通过通话传递凭据。 OAUTH,SAML2,X509,Basic Auth等。
例如
ODataConsumer.newBuilder(serviceUri).setClientBehaviors(OClientBehaviors.basicAuth(user,
password)).build();
//sorry this was the c#
var creds = username + ":" + password;
var encodedCreds = Convert.ToBase64String(Encoding.ASCII.GetBytes(creds));
requestHeaders.Add("Authentication", "Basic" + encodedCreds);
通常系统(如果配置正确)将发出MYSAPSSO2 cookie。 该cookie可以随后的请求重新发送。
搜索Basic Auth和OdataConsumer,会出现一些例子。