/** * 以列的方式向hbase中post数据 * @param string $server * @param string $key HBase的对应信息的key * @param mixed $content 提交的内容 * @return string | array */ private function putRowToHbase($server, $key, $content) { $hBase_config = APF::get_instance()->get_config($server, 'hbase'); if (empty($hBase_config)) { return ''; } $api = $hBase_config['rest_api'] . '/' . urlencode($hBase_config['table_name']) . '/' . urlencode($key); if ($hBase_config['column']) { $api .= "/" . urlencode($hBase_config['column'] . ":x"); } $columns = array(); if (is_object($content) || is_array($content)) { foreach ($content as $c_k => $c_v) { if (is_object($c_v) || is_array($c_v)) { $c_v = json_encode($c_v); } $columns[] = array('column' => base64_encode("{$hBase_config['column']}:" . $c_k), '$' => base64_encode($c_v)); } } elseif (is_string($content)) { $columns[] = $content; } $data = array('Row' => array(array('key' => base64_encode($key), 'Cell' => $columns))); $curl = new Util_Http_Curl(); $curl->setDefaults()->addHeader('Content-Type', 'application/json')->addOption(CURLOPT_POSTFIELDS, json_encode($data))->post($api); $getInfo = $curl->getTransferInfo(); return array('info' => $getInfo, 'data' => json_encode($data)); }
private function post($url, $data) { $curl = new Util_Http_Curl(); $response = $curl->setDefaults()->addHeader('Content-Type', 'application/xml')->addOption(CURLOPT_USERAGENT, $this->getUserAgent())->addOption(CURLOPT_POSTFIELDS, $data)->post($url); $httpResponse = new Util_Solr_Response(); $httpResponse->setTransferInfo($curl->getTransferInfo()); if ($response === false) { $httpResponse->fail(); } else { if ($curl->getTransferInfo('http_code') == '200') { $httpResponse->succeed()->setResponse($response); } else { $httpResponse->fail()->setResponse($response); } } return $httpResponse; }