2012-04-25 103 views
3

從我的Android應用程序,我試圖刪除存儲在tomcat的webapps目錄中的圖像。當我嘗試下面的代碼時,它給了我403個狀態碼。我在網上查詢,發現如果請求是合法的,但該行爲被禁止,它會提供該代碼。誰能告訴我在哪裏,我要去wrong.My代碼:http刪除403錯誤tomcat

HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
connection.setRequestMethod("DELETE"); 
int responseCode = connection.getResponseCode(); 

,當我試圖使用HttpClient的,它給了我同樣的錯誤 - HTTP/1.1 403禁止

HttpClient httpClient = new DefaultHttpClient(); 
        try { 
        httpClient.getParams().setParameter(
          "http.socket.timeout", new Integer(90000)); 
        HttpDelete delete = new HttpDelete(new URI(
          "http://192.168.2.1:9090/LocationUpdaterServlet/images/" 
            + userid)); 
        Toast.makeText(Image.this, "Removing your picture", 5000).show(); 
        HttpResponse response = httpClient.execute(delete); 
        if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) { 
         System.out.println(response.getStatusLine()); 
        } else { 
         // Here every thing is fine. 
        } 
        HttpEntity resEntity = response.getEntity(); 
        if (resEntity == null) 
         System.out 
           .println("---------Error No Response !!!-----"); 
       }catch (Exception ex) { 
        System.out.println("---------Error----"+ ex.getMessage()); 
        ex.printStackTrace(); 
       } finally { 
        httpClient.getConnectionManager().shutdown(); 

       } 

回答

3

在web.xml中,使其他的HTTP方法與此:

<servlet> 
    <servlet-name>default</servlet-name> 
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> 
    <init-param> 
     <param-name>debug</param-name> 
     <param-value>0</param-value> 
    </init-param> 
    <init-param> 
     <param-name>listings</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <init-param> 
     <param-name>readonly</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

參數debuglistings默認情況下,在tomcat的加載,而默認readonly是正確的,這意味着只有GET和POST可用。

用其他PARAMS是:

 
    debug    Debugging detail level for messages logged  
         by this servlet. [0]       

    fileEncoding  Encoding to be used to read static resources 
         [platform default]        

    input    Input buffer size (in bytes) when reading  
         resources to be served. [2048]     

    listings   Should directory listings be produced if there 
         is no welcome file in this directory? [false] 
         WARNING: Listings for directories with many  
         entries can be slow and may consume    
         significant proportions of server resources. 

    output    Output buffer size (in bytes) when writing  
         resources to be served. [2048]     

    readonly   Is this context "read only", so HTTP   
         commands like PUT and DELETE are    
         rejected? [true]        

    readmeFile   File to display together with the directory  
         contents. [null]        

    sendfileSize  If the connector used supports sendfile, this 
         represents the minimal file size in KB for  
         which sendfile will be used. Use a negative  
         value to always disable sendfile. [48]   

    useAcceptRanges  Should the Accept-Ranges header be included  
         in responses where appropriate? [true]