Java:HTTP POST 405不允许

时间:2014-05-06 05:07:50

标签: java http

我在使用REST操作时遇到了惊人的情况。

  

当我在IDE中运行简单的java程序时,我能够创建HTTP请求:201 / Created。成功。服务器接收请求

     

当我在Runtime环境中放入相同的程序(比如Mule)时,我得到405 / Method not Allowed。失败。服务器没有收到任何内容

     

当我通过Rest Client(一些mozilla或chrome插件)运行它时,它接受请求201 /创建。成功。服务器接收请求

在该特定网址上,我正在关注允许:

允许:GET,POST

运行时是否存在此问题? 或者在运行环境中要进行的任何设置? 或代码中的问题?

以下是代码:

        `URL urlRequest = new URL(url);
        HttpURLConnection conn = (HttpURLConnection) urlRequest.openConnection();
        conn.setRequestProperty("Host", "10.91.17.170:81");
        conn.setRequestProperty("User-Agent", "Mozilla/4.0");
        conn.setRequestProperty("Accept", "application/atom+xml;q=0.9,*/*;q=0.8"); 
        conn.setRequestProperty("Accept-Language", "en-us,en;q=0.5");
        conn.setRequestProperty("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
        conn.setRequestProperty("Keep-Alive", "115");
        conn.setRequestProperty("Connection", "keep-alive");
        conn.setRequestProperty("Access-Control-Allow-Origin", "*");
        conn.setRequestProperty("Content-Type", "application/atom+xml");
        conn.setDoOutput(true);

        conn.setRequestMethod("POST");

        DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
        wr.writeBytes(requestXML);
        wr.flush();
        wr.close();
        System.out.println("Created Request");

        System.out.println("Response Code: "+conn.getResponseCode());
        System.out.println("Response Status: "+conn.getResponseMessage());
        System.out.println("Response Status: "+conn.getContentType());
        System.out.println("Request Method: "+conn.getRequestMethod());

`

无法在谷歌上得到答案。击中和试验但没有成功。

1 个答案:

答案 0 :(得分:0)

POST方法经常出现405错误。您可能正在尝试在网站上引入某种输入表单,但并非所有ISP都允许使用必要的POST方法来处理表单。

所有405错误都可以追溯到Web服务器的配置和管理网站内容访问的安全性,因此您的ISP应该很容易解释。

您可以看到详细信息:

jQuery .ajax() POST Request throws 405 (Method Not Allowed) on RESTful WCF