我尝试发送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作为响应代码。 我该如何解决这个问题?
答案 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 。