Ejemplo n.º 1
0
 /**
  * 以列的方式向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));
 }
Ejemplo n.º 2
0
 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;
 }