2012-06-21 108 views

回答

8

你需要你的編碼使用授權標頭將accountKey傳遞給Base64並將其傳遞給每個請求。

String bingUrl = "https://api.datamarket.azure.com/Bing/Search/................"; 

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

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

... 

此代碼基於Migrating to the Bing Search API in Windows Azure Marketplace文檔中的PHP示例。

更新:修改encodeBase64調用,它應該是這樣的:accountKey +「:」 + accountKey

+0

的方式似乎是正確的,但事情在調用setRequestProperty必須differenet因爲這樣,我得到迴應消息「需要進行基本身份驗證,輸入賬號密碼作爲密碼 –

+1

我的不好,我更新了代碼示例 –

+0

你的新代碼產生了一個」錯誤的請求「我也嘗試了httpsCon.setRequestProperty(」Authorization:Basic「,accountKeyEnc );但是我又收到了消息「需要基本身份驗證...」@sandrinodimattia –