儘管我在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