405发送HTTP请求时发生错误抛出JAVA

时间:2016-01-13 10:06:24

标签: java web-services http

我尝试发送http请求并使用Java代码获取结果

这是服务器端:

public class Testws {
@GET
    @Path("/test/{id}")
    @Produces("application/xml")
    public Integer getAssets(@PathParam("id") int id){
        }
}

这是客户方:

URL url = new URL("http://xxx/route/test/1");
HttpsURLConnection connection = (HttpsURLConnection)url.openConnection();
connection.setDoOutput(true);
connection.connect();
final int responseCode = connection.getResponseCode();

当我运行这个java代码时,我得到了405状态代码,但是当我将链接(http://xxx/route/test/1)直接放在浏览器中时它工作正常我得到了200作为响应代码。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您的错误意味着您使用错误的HTTP方法查询服务器。

您在浏览器中粘贴的内容将以GET方式发送。

您的代码没有使用GET,因此要强制使用HTTP方法,请使用HttpConnection.setRequestMethod

或者,setDoOutput(true)不会让您使用GET,请参阅此主题: What exactly does URLConnection.setDoOutput() affect?

删除此行,您将使用默认的HTTP方法,即GET

  

public void setRequestMethod(String method)                         抛出ProtocolException

     

设置URL请求的方法,其中之一是:获取POST HEAD OPTIONS PUT DELETE TRACE是合法的,   受协议限制。 默认方法为GET