/** * eduwitterConnect * * parameters * url -- connection url * method -- 'GET', 'POST' or 'DELETE' * params -- request parameters oauth and post-field * * return * response of request */ protected function eduwitteConnect($url, $method, $params) { $query = EDAssist::params2Query($params); /** * curl configure */ $curl_opt = array(CURLOPT_URL => $url, CURLOPT_HEADER => TRUE, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSLVERSION => EDAssist::$ssl_version, CURLOPT_SSL_VERIFYPEER => EDAssist::$ssl_verifypeer, CURLOPT_HTTPHEADER => array('Expect:', EDAssist::params2Authorization($params))); /* switch of method */ switch ($method) { case 'GET': $curl_opt[CURLOPT_URL] = $url . '?' . $query; break; case 'POST': $curl_opt[CURLOPT_URL] = $url; $curl_opt[CURLOPT_POST] = true; $curl_opt[CURLOPT_POSTFIELDS] = $query; break; case 'DELETE': $curl_opt[CURLOPT_URL] = $url . '?' . $query; $curl_opt[CURLOPT_CUSTOMREQUEST] = $method; break; } /* setting crt file path, if it is settled */ if (!empty(EDAssist::$ssl_cainfo)) { $curl_opt[CURLOPT_CAINFO] = EDAssist::$ssl_cainfo; } /** * curl connection */ $ch = curl_init(); curl_setopt_array($ch, $curl_opt); $header_body = curl_exec($ch); curl_close($ch); /* split response to header and body */ $split_pos = strpos($header_body, "\r\n\r\n"); $response_header = substr($header_body, 0, $split_pos); $response_body = substr($header_body, $split_pos + 4); /* get http status code */ preg_match("/^HTTP\\/[\\d\\.]+ (\\d+) (.+)/", $response_header, $m); $this->last_status_code = $m[1]; $this->last_status_reason = $m[2]; // 改行が入るバグあり return $response_body; }