【问题标题】:Send HTTP POST request with specified port number发送带有指定端口号的 HTTP POST 请求
【发布时间】:2021-02-14 19:24:27
【问题描述】:

我试过这种方式发送 HTTP POST 请求:Java - sending HTTP parameters via POST method easily

但问题是:如果我需要连接到指定的端口号如 8080 怎么办?因为如果我这样做了

String request = "http://example.com:8080/index.php";

它给了我

java.net.ConnectException:操作超时

【问题讨论】:

  • 那可能不是你的服务部署到的端口。
  • @SotiriosDelimanolis 那么这是调用具有指定端口号的服务的正确方法吗?我的意思是,将其附加到 url?
  • 你能用我们的浏览器连接到这个网址吗?可能会发布一个带有 Advanced REST clientREST Client 等插件的 http 帖子,以查看它是否在您尝试连接 Java 的同一台机器上正确响应。
  • @Cacheing,是的(但您应该发布代码的相关部分以便我们查看)。
  • @AnthonyAccioly 奇怪的是我可以使用 Dev HTTP 客户端发送请求,但我不能使用代码来做到这一点。

标签: java


【解决方案1】:

您可能需要连接到该端口号,因为您要访问的服务正在侦听该端口。在这种情况下,尝试将端口号添加到 URL 是正确的。

现在您可能会收到“连接被拒绝”。如果另一端没有进程监听以接受连接,则可能会发生这种情况。这甚至可能意味着正在运行的服务对您的 连接不感兴趣。请记住,某些服务器进程可以配置为仅接受具有特定限制的连接。

您还可能会收到类似“无主机路由”、“未知主机名”或表示网络问题的信息。另一个这样的网络问题是连接超时,这通常指向防火墙拒绝访问。

总结一下:请注意您遇到了连接异常。这意味着尚未建立 TCP 连接 - 那时 HTTP 尚未启动,无论您打算 GET 还是 POST 都没有关系。我认为您在客户端做得很好,也许您需要检查服务器端为什么它不接受您的传入连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-22
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多