【问题标题】:not authorized bing search api未经授权的必应搜索 API
【发布时间】:2013-11-07 19:24:34
【问题描述】:

以下代码:

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 有什么办法解决吗?

【问题讨论】:

    标签: java azure


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复!更改代码通过添加 byte[] accountKeyBytes = Base64.encodeBase64((x + ":" + x).getBytes());//x 是 key;request。 setHeader("Authorization","Basic : " + x);//将授权留空,给出错误请求,就像未授权一样的错误。
    • 您目前正在附加密钥两次。试试:Base64.encodeBase64(":" + key)
    【解决方案2】:

    代码应该是这样的


    String accountKey = "xxxxxxxxxxx";
    byte[] accountKeyBytes = Base64.encodeBase64((accountKey + ":" + accountKey).getBytes());      String accountKeyEnc = new String(accountKeyBytes);
    request.setHeader("Authorization",
                    "Basic" + " "+accountKeyEnc);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-13
      • 2013-08-22
      • 2019-03-07
      • 1970-01-01
      • 2013-06-05
      • 2018-06-15
      • 2019-10-13
      相关资源
      最近更新 更多