簡體   English   中英

使用HttpURLConnection獲取405響應代碼

[英]Getting a 405 response code with HttpURLConnection

當我使用HttpURLConnection發出DELETE請求時,我收到HTTP響應代碼405

  public void makeDeleteRequest(String objtype,String objkey)
{
    URL url=null;
    String uri="http://localhost:8180/GoogleMapsLoadingTest/rest/GoogleMapsErp/";
    HttpURLConnection conn=null;
    try {
        url=new URL(uri);
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    try {
        conn=(HttpURLConnection) url.openConnection();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    conn.setDoInput(true);
    conn.setDoOutput(true);
    try {
        System.out.println(conn.getResponseCode());
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    try {
        conn.setRequestMethod("DELETE");
    } catch (ProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

我該如何提出這個要求?

405狀態代碼表示您指定的資源不允許使用您的方法( DELETE ); 在這種情況下,看起來像一個完整的REST端點目錄。 您應該對要刪除的特定項目使用DELETE ; 也許你在構造URL時忘了實際使用方法參數?

這似乎是您的服務器的問題。 我猜nginx,但如果沒有,請告訴我。 看看這里看看如何使用HttpDavModule編譯ngninx。 還有其他服務器存在此問題,但默認情況下nginx沒有。

如果您正在運行Apache,請檢查您的模塊配置,看看您是否禁止它們。 這是一篇關於以前解決方案的帖子。 不幸的是,此問題通常特定於已安裝的模塊。 但是,在vanilla安裝上,您通常只允許DELETE(請參閱配置文件以及該鏈接的OP)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM