我使用apache olingo 2.0作为客户端以访问ODATA服务。 我成功地获得了特定实体的元数据。我能够使用
阅读FeedEntityProvider.readFeed(contentType,
entityContainer.getEntitySet(entitySetName),
content,
EntityProviderReadProperties.init().build());
当我尝试编写条目
时会弹出问题 ODataResponse response = EntityProvider.writeEntry(contentType, entitySet, data, properties);
这里 contentType = Application \ Json
entitySet = Entity set retrieved from EDM (metadata)
data = data is map Map<String,object> with added property name and value.
使用此api创建条目时ODataResponse response = EntityProvider.writeEntry(contentType,entitySet,data,properties);
我在使用
打印内容时收到错误400 - 错误请求Object entity = response.getEntity();
if (entity instanceof InputStream) {
byte[] buffer = streamToArray((InputStream) entity);
// just for logging
String content = new String(buffer);
print(httpMethod + " request on uri '" + absolutUri + "' with content:\n " + content + "\n");
I do see that input object is not formed correctly and I am unable to understand why since it is handle by olingo jars.
我在位置
处遵循相同的客户端教程https://olingo.apache.org/doc/odata2/tutorials/OlingoV2BasicClientSample.html
我修改了此客户端以调用成功因子ERP上的ODATA服务。我只是使用教程中的客户端代码并进行了修改,以调用成功因子ERP上的ODATA服务。
答案 0 :(得分:0)
设置属性omitJsonWrapper,它应该可以工作。 用以下代替示例代码:
EntityProviderWriteProperties properties = EntityProviderWriteProperties.serviceRoot(rootUri).omitJsonWrapper(true).build();