有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中的web服务Windows Azure身份验证

尽管我检查了以前关于java for web search中azure身份验证的答案,但不知何故,我仍然得到了HTTP错误代码:401,即使帐户密钥与我在Windows azure Marketplace中的配置文件完全相同。我尝试生成一个新的,但也不起作用

因此,任何帮助都将不胜感激

以下是java代码(与其他使用过它的代码类似):

String bingUrl = "https://api.datamarket.azure.com/Bing/Search/Web?Query='multiple'&$top=4&$skip=1&$format=json";

        String accountKey = "key";
        byte[] encoding = Base64.encodeBase64((accountKey + ":" + accountKey).getBytes());
        String accountKeyEnc = new String(encoding);

        URL url = new URL(bingUrl);
        URLConnection urlConnection = url.openConnection();
        urlConnection.setRequestProperty("Authorization", String.format("Basic ", accountKeyEnc));

        BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
        String inputLine;
        StringBuffer sb = new StringBuffer();
        while ((inputLine = in.readLine()) != null)
          System.out.println(inputLine);
        sb.append(inputLine);
        in.close();
        System.out.println( sb.toString());

我得到的错误代码是:

java.io.IOException: Server returned HTTP response code: 401 for URL: https://api.datamarket.azure.com/Bing/Search/Web?Query='multiple'&$top=4&$skip=1&$format=json at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source) at queryengines.WebSample.DisplayResults(WebSample.java:37) at queryengines.WebSample.main(WebSample.java:19)


共 (1) 个答案

  1. # 1 楼答案

    我不是Java专家,但你不应该更改字符串吗。打电话来

    String.format("Basic %s", accountKeyEnc)