Создать объект в OData - PullRequest
       22

Создать объект в OData

0 голосов
/ 28 декабря 2018

Я столкнулся с проблемой при создании сущности в olingo apatche Odata, я использую odata для поддержки Mex

Я попытался использовать два способа: 1 - через патч 2 - ODataEntityCreateRequest

проблема в том, что при запуске приложения результат ответа создан - 201 или принять - 201 Но новые данные не добавлены в мою функцию (Контакты)

Этомой код

// Create a client
    ODataClient client = ODataClientFactory.getClient();


    // ===================================== Auth ================================================]

    final String auth = Base64.encodeBase64String(String.format("%s:%s", "admin", "admin").getBytes(StandardCharsets.UTF_8));

    client.getConfiguration().setHttpClientFactory(new DefaultHttpClientFactory() {
        @Override
        public DefaultHttpClient create(HttpMethod method, URI uri) {
            final DefaultHttpClient client = super.create(method, uri);
            client.addRequestInterceptor(new HttpRequestInterceptor() {
                @Override
                public void process(HttpRequest request, HttpContext context) throws HttpException, IOException {
                    request.addHeader("Authorization", "Basic " + auth);
                }
            });
            return client;
        }
    });


    // ------------------------------ Create New Entity ---------------------------------------------

    final ContentType ACCEPT = ContentType.APPLICATION_OCTET_STREAM;

   final ClientEntity NewSupplier = client.getObjectFactory().newEntity(new FullQualifiedName("MEXModel.Contact"));

    NewSupplier.getProperties().add(client.getObjectFactory().newPrimitiveProperty("ContactID",
            client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(0)));
    NewSupplier.getProperties().add(client.getObjectFactory().newPrimitiveProperty("FirstName",
            client.getObjectFactory().newPrimitiveValueBuilder().buildString("Turki Bintaleb")));
    NewSupplier.getProperties().add(client.getObjectFactory().newPrimitiveProperty("IsPrimaryContact",
            client.getObjectFactory().newPrimitiveValueBuilder().buildBoolean(true)));
    NewSupplier.getProperties().add(client.getObjectFactory().newPrimitiveProperty("IsTaxExempt",
            client.getObjectFactory().newPrimitiveValueBuilder().buildBoolean(false)));


    final ODataEntityCreateRequest<ClientEntity> createReq = client.getCUDRequestFactory().
            getEntityCreateRequest(client.newURIBuilder("https://myservice/OData.svc").appendEntitySetSegment("Contacts").build(), NewSupplier);

    createReq.setAccept(ACCEPT.toContentTypeString());
    createReq.addCustomHeader("User-Agent", "Apache Olingo OData Client");
    createReq.addCustomHeader(HttpHeader.ACCEPT_CHARSET, "UTF-8");
    createReq.setFormat(ContentType.APPLICATION_ATOM_XML);

    final ODataEntityCreateResponse<ClientEntity> createRes = createReq.execute();

    System.out.println(createRes.getStatusMessage());
    System.out.println("---------------------------------------------");
...