PHP запустить и забыть не работать с удаленным сервером - PullRequest
1 голос
/ 03 октября 2019

Я пытаюсь отправить запрос на удаленный сервер, используя метод «забей и забудь». Это мой код:

function backgroundPost($url, $data = array()){
  $parts=parse_url($url);

  $fp = fsockopen($parts['host'],
          isset($parts['port'])?$parts['port']:80,
          $errno, $errstr, 30);

  if (!$fp) {
      return false;
  } else {
      $encoded_data = json_encode($data);

      $output = "POST ".$parts['path']." HTTP/1.1\r\n";
      $output .= "Host: ".$parts['host']."\r\n";
      $output .= "Content-Type: application/json\r\n";
      $output .= "Content-Length: " . strlen($encoded_data) . "\r\n";
      $output .= "Connection: Close\r\n\r\n";
      $output .= $encoded_data;

      fwrite($fp, $output);
      fclose($fp);
      return true;
  }
}

//Example of use
backgroundPost('url-here', array("foo" => "bar"));

, но поступающие данные просто пусты.

Когда я запускаю приложение локально и вместо этого отправляю запрос на свой компьютер, данные приходят.

Что-то не так с этим шаблоном?

Почему он работает при отправке запроса на мою машину, но не на удаленную?

Спасибо!

...