首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用java中的REST调用模拟cURL时出错

使用java中的REST调用模拟cURL时出错
EN

Stack Overflow用户
提问于 2015-03-06 10:31:10
回答 2查看 1.6K关注 0票数 1

目前,我能够在curl中运行以下命令,该命令将按预期返回json响应。注意,输入JSON是以表单参数的形式在请求中按名称"json“发送的。API只接受JSON请求,并且只支持POST方法调用。

请求

代码语言:javascript
复制
curl --data 'json={ "startdate": "2012-10-10", "enddate":"2012-10-11" }' http://xxxxx.xxxx.xxx/xxxx/xxxx/xxxx/xxxx

响应

代码语言:javascript
复制
{"startdate":"2012-10-10","status":"true","Api Name":"xxxx","output":{"ROW":"49","EU":"54","NA":"33"},"enddate":"2012-10-11"}

我使用java中的REST调用来模拟上面的cURL命令。

代码如下所示

代码语言:javascript
复制
String urlString = "http://xxxxx.xxxx.xxx/xxxx/xxxx/xxxx/xxxx";
URL myUrl = new URL(urlString);
URLConnection urlConn = myUrl.openConnection();

String myData = "json={ \"startdate\": \"2012-10-10\", \"enddate\":\"2012-10-11\" }" ;
urlConn.setRequestProperty("data", myData);

urlConn.connect();

BufferedReader in = new BufferedReader(newInputStreamReader(urlConn.getInputStream()));

String inputLine;

while ((inputLine = in.readLine()) != null) {
    System.out.println(inputLine);
}
in.close();

但是上面的代码返回以下错误。

堆栈跟踪如下所示。

代码语言:javascript
复制
Exception in thread "main" java.io.IOException: Server returned HTTP response code: 405 for URL: http://xxxxx.xxxx.xxx/xxxx/xxxx/xxxx/xxxx
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1615)
    at dashboard.access.data.RAccess.main(RAccess.java:39)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-06 10:40:59

也许:

代码语言:javascript
复制
urlConn.setRequestMethod("POST");

openConnection()会修复它吗?您说您的api只允许post请求。你得到的405方法是不允许的。

如果没有,您可以尝试这个链接,查看第一章中的sendPost()方法:http://www.mkyong.com/java/how-to-send-http-request-getpost-in-java/

票数 1
EN

Stack Overflow用户

发布于 2020-03-08 13:29:11

请确保实现的安全性在以下文件中是正确的。

AuthenticationFilter.java AutherizationFilter.java SecurityConstants.java WebSecurity.java

Bcz spring安全是由spring实现的,我们无法找到正确的异常位置。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28896896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档