2015-10-01 3 views
0

Я пытаюсь вернуть вызов json get API, который требует, чтобы заголовок был задан с каждым запросом, я попытался привязать параметр addHeader() к моему запросу, но это, похоже, не работает и не возвращает 400 ошибок каждый раз, я пропускаю какие-либо дополнительные параметры или должен использовать что-то еще? любая помощь будет долгий путь благодаря!Добавление заголовка в запрос HttpGet

public String getJSON(String address, String header) { 
    StringBuilder builder = new StringBuilder(); 
    HttpClient client = new DefaultHttpClient(); 
    HttpGet httpGet = new HttpGet(address); 

    if(header != null){ 

     httpGet.addHeader("Authorization", "Bearer " + header); 

    } 

    try { 
     HttpResponse response = client.execute(httpGet); 
     StatusLine statusLine = response.getStatusLine(); 
     int statusCode = statusLine.getStatusCode(); 
     if (statusCode == 200) { 
      HttpEntity entity = response.getEntity(); 
      InputStream content = entity.getContent(); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(content)); 
      String line; 
      while ((line = reader.readLine()) != null) { 
       builder.append(line); 
      } 
     } else { 

      errorCode = statusCode; 

     } 
    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
     e.getMessage(); 

    } catch (IOException e) { 
     e.printStackTrace(); 
     e.getMessage(); 
    } 


    return builder.toString(); 
} 
+0

, включив журнал отладки клиента apache http вы видите, что происходит в заголовке. И когда я смотрю на ваш код, кажется, все в порядке. Btw http 400 - ошибка с плохим запросом, также может быть из-за вашего URL-адреса или параметра http. – cool

+0

Вы были правы, я сделал ошибку в одном из параметров GET, это было последнее место, которое я думал посмотреть! спасибо за вашу помощь –

ответ

0

Там не кажется, ничего плохого с использованием метода AddHeader(), я хотел бы попробовать отладки и анализа запроса, чтобы проверить, что заголовок и адрес, который вы используете правильно.

HTTP 400 указывает, что запрос искажен, если я должен был предположить, что я говорю, что используемый вами адрес/заголовок установлен, но не то, что ожидает веб-сервер.

+0

Оказывается, это была ошибка в GET url, последнее место, которое я думал посмотреть! –

0

Продвинутый сервер нуждается в аутентификации с использованием кодировки base64. Вы можете проверить свой запрос в браузере. Попробуйте Почтальон.

Смежные вопросы