public function testRequestBuilder() { $builder = new TreasureData_API_RequestBuilder(); $builder->setQuery("/job/status/1"); $result = array("scheme" => "https", "port" => 443, "host" => "https://api.treasure-data.com"); $result['request_method'] = $builder->getRequestMethod(); $info = parse_url($builder->getEndPoint()); if (isset($info['scheme'])) { $result['scheme'] = $info['scheme']; } if (isset($info['host'])) { $result['host'] = $info['host']; //$address = gethostbyname($info['host']); //$request->addAddress($address); } if (isset($info['port'])) { $result['port'] = $info['port']; } else { if ($result['scheme'] == 'http') { $result['port'] = 80; } } $result['params'] = $builder->getParams(); if ($builder->getAuthentication()) { $result['headers']['Authorization'] = $builder->getAuthentication()->getAsString(); } if ($builder->getUserAgent()) { $result['headers']["User-Agent"] = $this->getUserAgent(); } if ($builder->isPost()) { $data = http_build_query($builder->getParams()); $query = '/' . $builder->getApiVersion() . '/' . ltrim($builder->getQuery(), "/"); $result['query_string'] = $query; $result['headers']['Content-Type'] = "application/x-www-form-urlencoded"; $result['headers']['Content-Length'] = strlen($data); $result['content_body'] = $data; } else { if ($builder->hasParams()) { $query = '/' . $builder->getApiVersion() . '/' . ltrim($builder->getQuery(), "/") . '?' . http_build_query($builder->getParams()); } else { $query = '/' . $builder->getApiVersion() . '/' . ltrim($builder->getQuery(), "/"); } $result['query_string'] = $query; } $result['url'] = sprintf("%s://%s%s", $result['scheme'], $result['host'], $query); $result['gzip_hint'] = $builder->getGzipHint(); $request = new TreasureData_API_Request($result); $this->assertEquals("/v3/job/status/1", $request->getQueryString()); $this->assertEquals("GET", $request->getRequestMethod()); $this->assertEquals("https", $request->getScheme()); $this->assertEquals(sprintf("%s://%s%s", $result['scheme'], $result['host'], $query), $request->getUrl()); }
/** * get query string * * @return string */ public function getQuery() { return $this->request->getQueryString(); }