public ODataCreateResult getResponseFromLocation(String completeUrl, String destinationName) throws ODataException { HttpResponse httpResponse = null; try { Edm edm = metadataCache.getEdm(completeUrl, getHttpClient(destinationName), destinationRelevantHeaders, errorHandler, cacheMetadata,metadataFilePath,cacheKey,isCacheRefresh); EdmEntitySet eSet = edm.getDefaultEntityContainer().getEntitySet(this.entitySet); HttpGet requestGet = new HttpGet(location); httpResponse = getHttpClient(destinationName).execute(requestGet); ODataConnectivityUtil.checkHttpStatus(httpResponse, errorHandler); EntityStream entityStream = new EntityStream(); entityStream.setContent(httpResponse.getEntity().getContent()); entityStream.setReadProperties(DeserializerProperties.init().build()); String contentType = "application/atom+xml"; if (!httpResponse.getFirstHeader("Content-Type").toString().contains(contentType)) contentType = "application/json"; ODataEntry deepInsResponse = ODataClient.newInstance().createDeserializer(contentType).readEntry(eSet, entityStream); return new ODataCreateResult(httpResponse, deepInsResponse.getProperties()); } catch (IOException e1) { HttpClientUtils.closeQuietly(httpResponse); throw new ODataException(null, "IOException", e1); } catch (EntityProviderException | EdmException e1) { HttpClientUtils.closeQuietly(httpResponse); throw new ODataException(ODataExceptionType.RESPONSE_DESERIALIZATION_FAILED, "Error during serialization of input payload. " + e1.getMessage(), e1); } finally { HttpClientUtils.closeQuietly(httpResponse); } } private boolean isNavigationFlow(){
entityStream.setContent(httpResponse.getEntity().getContent()); entityStream.setReadProperties(DeserializerProperties.init().build()); ODataEntry deepInsResponse = ODataClient.newInstance().createDeserializer(contentType).readEntry(eSet, entityStream); return new ODataCreateResult(httpResponse, deepInsResponse.getProperties());