尽管我在java中为web搜索检查了以前对azure身份验证的答案,但即使帐户密钥与我在Windows Azure Marketplace中的配置文件中的密钥完全相同,我仍然得到HTTP错误代码:401 。我尝试生成一个新的,但也没有工作。Java中的Windows Azure身份验证
所以任何帮助将非常感激。
这里是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:服务器返回的HTTP响应代码:401为URL: https://api.datamarket.azure.com/Bing/Search/Web?Query= '多个' & $顶= 4 & $跳过= 1种& $格式= JSON 在sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知(WebSample.java:19)在queryengines.WebSample.DisplayResults(WebSample.java:37) (位于http://go.microsoft.com/fwlink/?LinkId=)(位于 处,位于处)
谢谢,即使在我尝试在我的Ubuntu机器上并没有工作,但在Windows似乎是问题之前,这是问题。 奇怪的是,在Ubuntu中,https协议可能会导致我怀疑这个问题。 – Besnik 2012-07-27 10:17:39
但这是否解决你的401错误? – 2012-07-27 10:19:04
是的,正是这样,现在我看到,以前我没有把%s放在'基本'之后。这似乎解决了它。非常感谢您的快速回复。 – Besnik 2012-07-27 10:22:21