【问题标题】:Trying to connect to datamarket returns exception尝试连接到数据市场返回异常
【发布时间】:2016-06-24 12:37:03
【问题描述】:

我正在尝试连接到 Azure 数据市场,它是一个 odata 存储库。我正在使用最新的 Olingo 库 r4.2.0。以下代码:

String serviceUrl = "https://api.datamarket.azure.com/DataGovUK/MetOfficeWeatherOpenData/v1/";

ODataClient client = ODataClientFactory.getClient();
ODataServiceDocumentRequest req = client.getRetrieveRequestFactory().getServiceDocumentRequest(serviceUrl);
req.setAccept("application/json;application/xml;odata.metadata=full");
req.setContentType("application/json;application/xml;odata.metadata=full");
ODataRetrieveResponse res = req.execute();

返回异常

 org.apache.olingo.client.api.communication.ODataClientErrorException: null [HTTP/1.1 415 Unsupported Media Type]

服务器返回:

<?xml version="1.0" encoding="utf-8"?>
<m:error mlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
   <m:code />
   <m:message xml:lang="en-US">
       Unsupported media type requested.
   </m:message>
</m:error>

有人试图用这个库或另一个用 Java 连接到 Azure 数据市场?

【问题讨论】:

    标签: java azure odata olingo


    【解决方案1】:

    尝试仅使用JSONXML 设置请求标头AcceptContent-Type,而不是两者。请看下文。

    req.setAccept("application/json");
    req.setContentType("application/json;odata.metadata=full");
    

    或者

    req.setAccept("application/atom+xml,application/xml");
    req.setContentType("application/atom+xml,application/xml;odata.metadata=full");
    

    为了授权

    req.addCustomHeader("Authorization", "Basic " + getAccountKey());
    

    其他 stackoverflow post 中描述的帐户密钥在哪里:

    public String getAccountKey()
    {
        String accountKey = "My Microsoft Azure Account Key";
        byte[] accountKeyBytes = Base64.encodeBase64((accountKey + ":" + accountKey).getBytes());
        String accountKeyEnc = new String(accountKeyBytes);
        return accountKeyEnc;
    }
    

    【讨论】:

    • 更好,谢谢。我现在得到一个“HTTP/1.1 401 Unauthorized”。知道如何使用“主帐户密钥”登录吗?
    • @ic3 可以参考SO线程stackoverflow.com/questions/11136936/…的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多