как добавить информацию заголовка в ODataConsumer в odata4j?

Я использую этот код, который использует odata4j ODataClientRequest и ODataConsumer, чтобы попытаться вызвать службу 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, который включает в себя необходимую информацию заголовка авторизации?


person Weijian Chai    schedule 13.05.2013    source источник


Ответы (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());
}
person atconway    schedule 14.05.2013