如何在odata4j中的ODataConsumer中添加头信息?

时间:2013-05-13 20:35:35

标签: java odata4j

我使用的代码利用odata4j ODataClientRequestODataConsumer来尝试调用需要身份验证的OData服务:

    String url = "https://mylocalhost/api/odata/People()?$filter=PID%20eq%20'10'";

    Map<String, String> headers = new HashMap<String, String>();
    headers.put("AccountID", "100");
    ODataClientRequest clientRequest = new ODataClientRequest("GET", url, headers, null, null);

    ODataConsumer consumer = ODataConsumer.create(url);

    for(OEntity entity : consumer.getEntities("People").execute()){

但是,我收到了身份验证错误,因为服务器正在请求标头身份验证信息。如何创建包含所需授权标头信息的ODataConsumer

1 个答案:

答案 0 :(得分:-1)

我认为您可以在客户端上使用基本身份验证(因为您收到了身份验证错误)而不是手动添加标头,并且可以在设置您的使用者时添加内置客户端“行为”。 BasicAuthenticationBehavior.java的代码显示在以下链接中:

BasicAuthenticationBehavior.java

将基本身份验证行为添加到ODataConsumer的代码与以下内容类似:

ODataConsumer.Builder builder = ODataConsumers.newBuilder(url);
builder.setClientBehaviors(new BasicAuthenticationBehavior(LoginUsername, LoginPassword));      
ODataConsumer c = builder.build();

for(OEntity entity : c.getEntities("EntityName").execute()){
    System.out.println(entity.getProperty("Name").getValue().toString());
}