Я пытаюсь создать приложение, которое выполняет поиск изображений и отображает результаты изображения в сетке. Поскольку API поиска изображений Google устарел и больше не будет доступен в ближайшее время, я пытаюсь использовать Bing Search API.Использование API поиска Azure Bing в Android
Однако, я получаю следующее сообщение об ошибке:
java.io.IOException: No authentication challenges found
at libcore.net.http.HttpURLConnectionImpl.getAuthorizationCredentials(HttpURLConnectionImpl.java:427)
at libcore.net.http.HttpURLConnectionImpl.processAuthHeader(HttpURLConnectionImpl.java:407)
at libcore.net.http.HttpURLConnectionImpl.processResponseHeaders(HttpURLConnectionImpl.java:356)
at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:292)
at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168)
at libcore.net.http.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:271)
Я следующий пример в http://learn-it-stuff.blogspot.com/2012/09/using-bing-custom-search-inside-your.html. Если кто-то испытал этот вопрос или может помочь мне, это было бы высоко оценено. Благодаря!
Вот мой код до сих пор:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AsyncTask <Void, Void, Void> task = new AsyncTask <Void, Void, Void>() {
protected Void doInBackground(Void... args) {
// Uri uri = Uri.parse("https://www.google.com/search?tbm=isch&q=penguin");
// Intent intent = new Intent(Intent.ACTION_VIEW, uri);
// startActivity(intent);
/*-------------------------Bing search-------------------------*/
String searchText = "Hello World";
searchText = searchText.replace(" ", "%20");
String accountKey = "MY_APP_ID";
accountKey = accountKey.replace("+", "%2B");
byte[] accountKeyBytes = Base64.encodeBase64((accountKey + ":" + accountKey).getBytes());
String accountKeyEnc = new String(accountKeyBytes);
URL url;
try {
url = new URL(
"https://api.datamarket.azure.com/Bing/Search/v1/"
+ "Image?Query=%27" + searchText + "%27");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
conn.setRequestProperty("Authorization", "Basic " + accountKeyEnc);
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
StringBuilder sb = new StringBuilder();
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
sb.append(output);
}
conn.disconnect();
System.out.println(sb);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
};
task.execute();
}
}
Я не знаю, продолжаете ли вы по-прежнему работать над этим. Но сначала вы должны проверить основы Android. В вашем коде есть много ошибок, которые исходят только из опыта. Если вы их исправите, я могу помочь вам с вашим вопросом. –
может у, пожалуйста, пришлите мне этот код – kumar
@kumar, что вы имеете в виду? Код здесь. Я был занят другими проектами и еще не вернулся к этому. Луис, я не новичок в Android; этот код исходит из образца проекта. Однако, когда я вернусь к этому, помощь будет высоко оценена. – lgdroid57