0

以下代码:

HttpClient client = new DefaultHttpClient();
try{
HttpGet request = new HttpGet(x);
request.setHeader("Authorization", "Basic:accound id");
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = client.execute(request, responseHandler);
System.out.println(responseBody);
}

其中 x = ="https://api.datamarket.azure.com/Bing/SearchWeb/vl/Web?Query=%27query%20";

给出以下错误:org.apache.http.client.HttpResponseException:不支持您提供的授权类型。仅支持 Basic 和 OAuth 有什么解决方案?

4

2 回答 2

1

授权头需要Base64编码;用户名留空,密码是帐户ID。

于 2013-11-07T19:49:06.950 回答
0

代码应该类似于


String accountKey = "xxxxxxxxxxx";
byte[] accountKeyBytes = Base64.encodeBase64((accountKey + ":" + accountKey).getBytes());      String accountKeyEnc = new String(accountKeyBytes);
request.setHeader("Authorization",
                "Basic" + " "+accountKeyEnc);
于 2014-04-30T11:56:15.087 回答