2012-06-21 31 views

Trả lời

8

Bạn cần mã hóa accountKey thành Base64 và chuyển nó cho mỗi yêu cầu bằng cách sử dụng tiêu đề 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); 

... 

Mã này được dựa trên ví dụ PHP được tìm thấy trong tài liệu Migrating to the Bing Search API in Windows Azure Marketplace.

Cập nhật: Modified cuộc gọi encodeBase64, nó phải là như thế này: accountKey + ":" + accountKey

+0

Cách có vẻ là đúng nhưng cái gì đó trong setRequestProperty phải differenet vì cách này tôi nhận được phản ứng Thông báo "Yêu cầu xác thực cơ bản. Nhập mã tài khoản là mật khẩu –

+1

Lỗi của tôi, tôi đã cập nhật mã mẫu –

+0

Mã mới của bạn tạo" Yêu cầu không hợp lệ ". Tôi cũng đã thử httpsCon.setRequestProperty (" Ủy quyền: Cơ bản ", accountKeyEnc) nhưng tôi lại nhận được thông báo "Xác thực cơ bản là bắt buộc ..." @sandrinodimattia –

Các vấn đề liên quan