Android: 400 код ошибки при доступе к веб-сервису RESTful - PullRequest
1 голос
/ 12 октября 2011

Я хочу получить доступ к веб-сервису Restful.Я хочу, чтобы запрос был в следующем формате.

GET /API/Contacts/username HTTP/1.1 
HOST: $baseuri:port 
Accept: text/xml 
Authorization: Basic ZmF0aWdhYmxlIGdlbmVyYXR=

А также я вызываю веб-службу по протоколу HTTPS.Ниже приведен код, который я использую:

HttpGet get = new HttpGet("https://secure.myapp.com/MyApp/API/Contacts/myname");

  get.addHeader("Accept","text/xml");
  get.addHeader("Authorization","Basic ZmF0aWdhYmxlIGdlbmVyYXR=");          
  get.addHeader("Host","https://secure.myapp.com");
  get.addHeader("Connection Use","HTTP 1.1");

  DefaultHttpClient client =  new DefaultHttpClient();
  ResponseHandler objHandler = new BasicResponseHandler();
  String getResponse = client.execute(get,objHandler); 

Но я получаю сообщение об ошибке: 400 Плохой запрос.

Я не уверен, правильный ли мой код.Нужно ли явно указывать метод (GET, POST или PUT) в заголовке?

Пожалуйста, помогите мне ... Спасибо Вам ....

Ответы [ 2 ]

0 голосов
/ 13 октября 2011

Оу ... Это была моя ошибка. Я не соблюдаю порядок добавления заголовков. Когда я изменил его порядок согласно запросу, он работает нормально.

В запросе HOST должен быть первым параметром. Ниже приведен исправленный код.

get.addHeader("Host","secure.myapp.com");
get.addHeader("Accept","text/xml");   
get.addHeader("Authorization","Basic ZmF0aWdhYmxlIGdlbmVyYXR=");                
get.addHeader("Connection Use","HTTP 1.1"); 

Извините, что беспокою вас всех ...

0 голосов
/ 12 октября 2011

Разве вы не должны ставить 'Basic ZmF0aWdhYmxlIGdlbmVyYXR =' в двойных кавычках? Также проверьте пример запроса и ответа веб-службы и убедитесь, что все указано.

...