ini_set('display_errors', 1); //error_reporting(E_ALL); error_reporting(0); $http = new swoole_http_server("", 9501, SWOOLE_BASE); $http->set([]); $i = 0; $http->on('request', function ($request, swoole_http_response $response) use(&$i) { $route = $request->server['request_uri']; if ($route == '/info') { $response->end(json_encode($request)); return; } $cli = new swoole_http_client('127.0.0.1', 9501); $cli->set(['timeout' => 0.3, 'keep_alive' => 1]); //post request $cli->setData(http_build_query(['a' => 123, 'b' => "哈哈"])); $cli->setHeaders(['User-Agent' => "swoole"]); $cli->on('close', function ($cli) use($response) { // echo "close\n"; }); $cli->on('error', function ($cli) use($response) { $response->end("error"); }); $cli->execute('/info', function ($cli) use($response, &$i) { $cli->setHeaders(['User-Agent' => "swoole"]); //get request $cli->execute('/info', function ($cli) use($response, &$i) { $ret = json_encode($cli->headers) . "\nSERVER RESPONSE: " . $cli->body; $response->end($ret); $cli->close(); });