2011-10-12 61 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