【问题标题】:Connecting to Odata 4 returns 406 Not Acceptable连接到 Odata 4 返回 406 Not Acceptable
【发布时间】:2015-03-13 18:19:41
【问题描述】:

我正在尝试连接到 Odata 4,但出现 406 错误。

The content-type range '[application/json;odata.metadata=full]' is not supported. [HTTP/1.1 406 Not Acceptable]

完整的堆栈跟踪:

Exception in thread "main" org.apache.olingo.client.api.communication.ODataClientErrorException: The content-type range '[application/json;odata.metadata=full]' is not supported. [HTTP/1.1 406 Not Acceptable]
    at org.apache.olingo.client.core.communication.header.ODataErrorResponseChecker.checkResponse(ODataErrorResponseChecker.java:73)
    at org.apache.olingo.client.core.communication.request.AbstractRequest.checkResponse(AbstractRequest.java:53)
    at org.apache.olingo.client.core.communication.request.AbstractODataRequest.doExecute(AbstractODataRequest.java:324)
    at org.apache.olingo.client.core.communication.request.retrieve.ODataServiceDocumentRequestImpl.execute(ODataServiceDocumentRequestImpl.java:57)
    at org.apache.olingo.client.core.communication.request.retrieve.ODataServiceDocumentRequestImpl.execute(ODataServiceDocumentRequestImpl.java:37)
    at com.acc.odata.OlingoConnect.main(OlingoConnect.java:23)

以下是我尝试使用 olingo jar 连接到 odata 的代码

String serviceRoot = "http://localhost:8080/odata-server-sample/cars.svc";
ODataClient client = ODataClientFactory.getV4();
ODataServiceDocumentRequest req = client.getRetrieveRequestFactory()
    .getServiceDocumentRequest(serviceRoot);
ODataRetrieveResponse<ODataServiceDocument> res = req.execute();
ODataServiceDocument serviceDocument = res.getBody();
Collection<String> entitySetNames = serviceDocument.getEntitySetNames();
Map<String, URI> entitySets = serviceDocument.getEntitySets();
Map<String, URI> singletons = serviceDocument.getSingletons();
Map<String, URI> functionImports = serviceDocument.getFunctionImports();
URI productsUri = serviceDocument.getEntitySetURI("Cars");

我的实现有什么问题?

【问题讨论】:

    标签: java web-services rest odata


    【解决方案1】:

    这是因为服务文档的 Content-Type 是 application/xml,而不是“application/json;odata.metadata=full”。也许你应该添加标题“接受”

    【讨论】:

      猜你喜欢
      • 2016-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-15
      • 1970-01-01
      • 1970-01-01
      • 2017-05-25
      • 1970-01-01
      相关资源
      最近更新 更多