0

我正在 Android 中开发一个使用 SAP NetWeaver 网关提供的 OData 服务的应用程序,我正在使用 Odata4J 库来使用服务。

ODataConsumer consumer = ODataConsumers
 .create("https://sapes1.sapdevcenter.com/sap/opu/odata/IWFND/RMTSAMPLEFLIGHT/");

当我从 Web 浏览器点击此 URL时,它会提示“需要身份验证”对话框,我必须在其中输入我的用户名和密码,然后我可以看到服务文档、架构文档等。

我的问题是:如何使用 Odata4J 通过我的请求传递凭据?成功验证后,我是否会收到任何类型的令牌以验证进一步的请求?

4

1 回答 1

0

您可以通过调用传递凭据。OAUTH、SAML2、X509、基本身份验证等。

例如

   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,会显示一些示例。

于 2014-09-24T10:42:42.337 回答