public static function form($data) { if (is_array($data) || is_object($data) || $data instanceof \Traversable) { return http_build_query(Request::buildHTTPCurlQuery($data)); } return $data; }
public static function doRequest(TaskRequest $request, $taskType) { if ($request->isDelay()) { return null; } output($request->name, $request->id); $httpRequest = HttpRequest::create(); try { if ($request->authorization) { $httpRequest->auth($request->authorization['type'], $request->authorization['user'], $request->authorization['password']); } switch ($request->timeout[0]) { case 's': $httpRequest->timeout($request->timeout[1]); break; case 'ms': $httpRequest->timeoutMs($request->timeout[1]); break; } if ($request->proxy) { $httpRequest->proxy($request->proxy['address'], $request->proxy['port'], $request->proxy['type'], $request->proxy['tunnel']); if (!empty($request->proxy['auth'])) { $httpRequest->proxyAuth($request->proxy['auth']['user'], $request->proxy['auth']['password'], $request->proxy['auth']['method']); } } $httpResponse = $httpRequest->send($request->method, $request->url, $request->data, $request->headers); output($httpResponse->curl_info, $httpResponse->code); } catch (GlobalException $ex) { output($ex->getMessage()); } // 释放内存 $httpRequest = null; unset($httpRequest); }
private function testJsonFile() { output(__METHOD__); try { $httpRequest = HttpRequest::create(); $httpResponse = $httpRequest->get("https://freegeoip.net/json/8.8.8.8"); // output($httpResponse); $watcher = HttpWatcher::create($httpResponse); $watcher->assertStatusCode(200)->assertHeadersExist(array("Content-Length"))->assertHeaders(array())->assertBodyJsonFile(__DIR__ . "/_json/freegeoip.net.json", true); } catch (GlobalException $ex) { output($ex->getMessage(), __METHOD__); } }