Android:400访问RESTful Web服务时的错误代码

时间:2011-10-12 11:15:36

标签: android rest error-code

我想访问Restful Web服务。我希望请求应采用以下格式。

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

我也通过HTTPS协议调用Web服务。 以下是我正在使用的代码:

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 Bad request。

我不确定我的代码是否正确。是否有必要在标题中明确指定方法(GET,POST或PUT)?

请帮帮我... 打扰你....

2 个答案:

答案 0 :(得分:0)

你不应该在双引号中加上'Basic ZmF0aWdhYmxlIGdlbmVyYXR ='吗? 还要检查Web服务示例请求和响应,并确保已指定所有内容。

答案 1 :(得分:0)

...喔 那是我的错。 我没有保持添加标题的顺序。 当我根据请求更改订单时它工作正常。

在请求中,HOST应该是第一个参数。 以下是更正后的代码。

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