2012-06-21 13 views

risposta

8

Avrai bisogno di codificare il accountKey a Base64 e passarlo a ogni richiesta usando l'intestazione Authorization.

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); 

... 

Questo codice è basato sull'esempio del PHP trovato nel documento Migrating to the Bing Search API in Windows Azure Marketplace.

Aggiornamento: Modificata la chiamata encodeBase64, dovrebbe essere simile a questo: accountKey + ":" + accountKey

+0

Il modo sembra essere corretto, ma qualcosa nel setRequestProperty deve essere differenet perché in questo modo ho la risposta in messaggio "È richiesta l'autenticazione di base Inserisci la chiave dell'account come password –

+1

Il mio male, ho aggiornato il codice campione –

+0

Il tuo nuovo codice produce una" Richiesta non valida ". Ho anche provato httpsCon.setRequestProperty (" Autorizzazione: base ", accountKeyEnc), ma ho ricevuto di nuovo il messaggio "È richiesta l'autenticazione di base ..." @sandrinodimattia –