2017-01-24 2 views
0

Ich versuche, eine Entität über eine HTTP PUT Anfrage mit folgendem Code zu übertragen.Wie man eine PUT Anfrage mit Apache Olingo macht?

public ClientEntity createEntity(URI absoluteUri, 
     ClientEntity ce) { 

    ODataEntityCreateRequest<ClientEntity> request = client 
      .getCUDRequestFactory().getEntityCreateRequest(absoluteUri, ce); 
    request.setAccept("application/json;odata.metadata=minimal");  
    ODataEntityCreateResponse<ClientEntity> response = request.execute(); 
    return response.getBody(); 
} 

Die Funktion getEntityCreateRequest erzeugt jedoch nur eine POST Anforderung und erlaubt (soweit ich weiß) keine Veränderung der verwendeten HttpMethod.

Leider ist ODataEntityUpdateRequest auch keine Option, da diese Anforderung nur die HttpMethodPATCH oder REPLACE ermöglicht.

Innerhalb der Dokumentation habe ich eine Funktion setMethod(HttpMethod method) gefunden, aber diese Methode ist nur für den Server nicht die Client-Implementierung (https://olingo.apache.org/javadoc/odata4/org/apache/olingo/server/api/ODataRequest.html).

Weiter entdeckte ich setUseXHTTPMethod(boolean value), die PUT, MERGE, PATCH, DELETE über POST tunnelt. Ich überprüfte die Konfiguration meines Clients, um sicherzustellen, dass false ist, was es ist. (Referenz zu Funktionen: https://olingo.apache.org/javadoc/odata4/org/apache/olingo/client/api/Configuration.html)

Daher frage ich mich, wie man eine PUT Anfrage mit Apache Olingo machen?

Vielen Dank für Ihre Eingabe.

Antwort

1

ODataEntityUpdateRequest mit UpdateType.REPLACE sollte auf ein PUT Verfahren gleichwertig sein.

Hinweis the source code, Zeile 31.

+0

Noch einmal, vielen Dank. Dies löst das Problem. :) –

1

Implementieren des updateEntity Methode.

+0

Vielen Dank für die Eingabe. Sie haben vollkommen recht, die 'updateEntity' hat die erforderliche Methode. :) Vielen Dank! –