2011-10-12 64 views
1

我想访问Restful Web服务。我希望请求应该采用以下格式。Android:400访问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错误的请求。

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

请帮我... Thnking你....

回答

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"); 

对不起,打扰您了所有......

0

你不应该把 '基本ZmF0aWdhYmxlIGdlbmVyYXR =' 在双引号? 还检查Web服务示例请求和响应,并确保一切都已指定。

+0

对不起,我忘记把引号中的问题。其实我在我的要求中使用了引号。但不工作 – Jomia