Java 尝试连接到datamarket返回异常

Java 尝试连接到datamarket返回异常,java,azure,odata,olingo,Java,Azure,Odata,Olingo,我正在尝试连接Azure数据市场,它是一个odata存储库。我正在使用最新的Olingo库r4.2.0。以下代码: String serviceUrl = "https://api.datamarket.azure.com/DataGovUK/MetOfficeWeatherOpenData/v1/"; ODataClient client = ODataClientFactory.getClient(); ODataServiceDocumentRequest req = client.ge

我正在尝试连接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 data market?

尝试仅使用
JSON
XML
设置请求头
Accept
&
内容类型
,而不是两者都设置。请看下面

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

和授权

req.addCustomHeader("Authorization", "Basic " + getAccountKey());
其中,其他stackoverflow中所述的帐户密钥为:


尝试仅使用
JSON
XML
设置请求头
Accept
Content-Type
,而不是两者都设置。请看下面

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

和授权

req.addCustomHeader("Authorization", "Basic " + getAccountKey());
其中,其他stackoverflow中所述的帐户密钥为:


好多了,谢谢。我现在得到一个“HTTP/1.1 401未经授权”。知道如何使用“主帐户密钥”登录吗?@ic3您可以参考SO线程的答案。更好,谢谢。我现在得到一个“HTTP/1.1 401未经授权”。知道如何使用“主帐户密钥”登录吗?@ic3您可以参考SO线程的答案。