【问题标题】:Is it possible to make a HTTP (POST) request without waiting for a response, in either Java or JavaScript是否可以在 Java 或 JavaScript 中发出 HTTP (POST) 请求而无需等待响应
【发布时间】:2019-03-10 08:20:15
【问题描述】:

我需要创建一个 http post 请求,而无需等待 Java 或 JavaScript 的响应。异步 http 调用不是我想要的,因为它仍在等待响应,只是在一个单独的线程上。

【问题讨论】:

  • 仅仅省略一个load 监听器 (XMLHttpRequest) 或一个.then (Fetch) 还不够吗?
  • “因为它仍在等待响应”。无论您使用什么,都必须等待 HTTP 响应。

标签: javascript java jquery spring asynchronous


【解决方案1】:

看来这篇文章可能对您有所帮助。

根据您使用的客户端,您应该能够只调用 post 方法()。我可能是错的,但我相信添加 .then() 是使它异步的原因。

Sending HTTP POST Request In Java

【讨论】:

    【解决方案2】:

    是的,如果您创建自己的连接,可以发送您需要的任何内容,然后终止连接。来自Java - sending HTTP parameters via POST method easily 的 Alan Geleynse 的回答就是这样做的。

    【讨论】:

      【解决方案3】:

      是的,有可能,
      我之前在使用 laravel 时已经完成了,我需要大量的 webhook 发送给商家。在我写登录等待响应之前,但它需要更多时间然后我谷歌并找到解决方案。 这是一个例子。

      function postCurlRequest(string $url, array $post_array, $check_ssl=true) {
          // $url = 'https://post_url.com';
          $cmd = "curl -L -X POST -H 'Content-Type: application/json'";
          $cmd.= " -d '" . json_encode($post_array) . "' '" . $url . "'";
      
          if (!$check_ssl){
            $cmd.= "'  --insecure"; // this can speed things up, though it's not secure
          }
          $cmd .= " > /dev/null 2>&1 &"; // don't wait for response
      
          // echo $cmd;die;
      
          exec($cmd, $output, $exit);
         return $exit == 0;
      }
      

      【讨论】:

        猜你喜欢
        • 2011-01-12
        • 2012-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-06
        • 1970-01-01
        相关资源
        最近更新 更多