我想访问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)?
请帮帮我... 打扰你....
答案 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");
抱歉打扰你们......