【问题标题】:Java post http request (express) REST apiJava post http 请求(快速) REST api
【发布时间】:2016-07-12 17:21:38
【问题描述】:

在通过 Java 与 Express REST api 通信时遇到一些问题。

一个简单的路线,在线:http://localhost:5555/test

router.post('/test', function (req, res, next) {
  console.log("recived request");
  res.sendStatus(200);
});

如您所见,这条路线并没有做太多事情,仅用于连接测试目的。

花了好几个小时搜索,但还没有找到一个好的例子。

仍然可以正常使用代码,但出现异常。

URL url = new URL("http://localhost:5555/test");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
writer.write("test");

如果有人知道我可以工作的代码和平,那就太好了!

谢谢

编辑 服务器正在运行:

> node index.js
server running on port: 5555
connection open

Java 异常:

System.err: null

【问题讨论】:

    标签: java api http post express


    【解决方案1】:

    您的 Express 路线需要 POST,而您的代码执行 GET 请求 (openConnection)。尝试将其更改为 get 重试您的操作。

    【讨论】:

    • 您能否就收到的错误提供更多反馈并更新您的问题以便其他人提供帮助?
    • 我建议您使用 Apache HttpClient 库,请参阅此处的示例:baeldung.com/httpclient-post-http-request
    • 我认为这已被弃用?使用 HttpClient 和 HttpPost
    • 它是一个在 Java 中用于发出 HTTP 请求的不同且非常广泛使用的库,它根本没有被弃用。
    • 啊,我的 NetBeans 这么说的,我会调查一下,感谢您在这里与我一起思考!
    【解决方案2】:

    因为你的路由接受POST 方法,你可能有2个选项。

    1. 将Java代码中的请求方法改为POST

      connection.setRequestMethod("POST");
      
    2. 更改您的路线接受GET

    【讨论】:

    • 嗨,更新了我的帖子。忘记在以前的代码中设置请求方法,但也不起作用..
    • 好吧,我有一些建议给你: 1.你应该使用一些记录器来帮助你调试请求的过程; 2.检查你的防火墙; 3. 使用浏览器或 chrome 应用程序中的Postman 验证您的服务器是否正确设置,然后再继续。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 2018-07-14
    • 2018-08-04
    相关资源
    最近更新 更多