2013-12-03 2 views
1

У меня есть проект, написанный на простой php с помощью curl, и он сработал. Теперь я хочу переместить этот проект в zend framework 1 (и я новичок в zend). Я пытался подключить по Zend_Http_Client_Adapter_Curl и я не получил достаточно информации, что я need Мой обычный код PHP: функция server_com ($ данных, $ api_host) {cURL Adapter использует в zend framework 1.12

 $xml = "xml=".($data); 
     $host = $api_host; 
     //curl initialization 
     $cpt = curl_init(); 
     //curl url 
     curl_setopt($cpt, CURLOPT_URL, "https://$host"); 
     curl_setopt($cpt, CURLOPT_SSL_VERIFYHOST, 1); 
     //Return the response as a string instead of outputting it to the screen 
     curl_setopt($cpt, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($cpt, CURLOPT_SSL_VERIFYPEER, FALSE); 
     // set this true if you want to send a POST request 
     curl_setopt($cpt, CURLOPT_POST, 1); 
     //Array of data to POST in request 
     curl_setopt($cpt, CURLOPT_POSTFIELDS, array('xml' => $data)); 
     //curl execution 
     $result = curl_exec($cpt); 

     RETURN $result; 
    } 
    $data = '<?xml version="1.0" encoding="utf-8"?> 
     <Request version="1.0"> 
      <Export mode="UPDATE" type="COREDATA"> 
       <Login> 
        <User>user</User> 
        <Password>password</Password> 
       </Login> 
      </Export> 
     </Request> 
    '; 
    // specifies the URL for the request 
    $api_host = "demo.api.net/api/"; 
    $result = server_com($data, $api_host); 
    $fh = fopen("va.xml", "w"); 
    fwrite($fh,$result); 
    fclose($fh); 

здесь я создаю файл va.xml после запроса запроса. теперь, я хочу, чтобы этот эквивалент Zend framework 1 с помощью cURL-адаптера, может ли кто-нибудь помочь? Я попытался использовать zend http client (с адаптером cURL) в проекте zend, чтобы заменить часть cULR старого проекта php. Я застрял последние 2 дня. Я был бы очень признателен за помощь в этом отношении.

ответ

1

Это всего лишь грубый макет, который я не запускал; но попробуйте это:

$api = "demo.api.net/api/"; 
$config = array(
    'adapter' => 'Zend_Http_Client_Adapter_Curl', 
    'curloptions' => array(
     CURLOPT_SSL_VERIFYHOST => 1, 
     CURLOPT_RETURNTRANSFER => 1, 
     CURLOPT_SSL_VERIFYPEER => FALSE 
    ), 
);  

$client = new Zend_Http_Client($api, $config); 

$data = '<?xml version="1.0" encoding="utf-8"?> 
    <Request version="1.0"> 
     <Export mode="UPDATE" type="COREDATA"> 
      <Login> 
       <User>user</User> 
       <Password>password</Password> 
      </Login> 
     </Export> 
    </Request> 
'; 

$client->setConfig(array(
    'maxredirects' => 0, 
    'timeout'  => 30) 
); 
$client->setRawData($data, 'text/xml')->request('POST'); 

$fh = fopen("va.xml", "w"); 
fwrite($fh,$client->getLastResponse()); 
fclose($fh); 
+0

Привет Matt, я получаю выход ниже: HTTP/1.1 200 OK Дата: Чт, 5 декабря 2013 10:36:53 GMT Сервер: Apache/2.2.14 (Ubuntu) X-питание-по: PHP/5.3.2-1ubuntu4.19 Vary: Accept-Encoding Content-Encoding: GZIP Content-Length: 5760 Подключение: закрыть Content-Type: текст/XML @I "0ËŒŒ¹~¿ · '_¶ŠôI½|OKa0â <æ Î rs§ë @ Œm˽À + 0 £ ooÖc0 ÷ ïãPë¶SÑÜéœÜôìæ» ¬ öôö^TW¯Ó F) AJ ¢ YžÕdŠlpU. x,-Y4 (¼¼ðò> çåμPž ¥/ß% ,! "õyyŒdéŸü9³» GO> ºôZøžéyL | JŒŒX 3ElÍ- $ ¯ qÍaõμ'âË $, e¾> öñóéŸ4Ÿ ‰ 6FßÞžþm | ŠÝhð5¹þH ÷ {Oo/‡ » '¬ + E¸ ¢ μ \ õ $ ËÀ¡cTšT ‰ Ê0M ° ÒÐ3cÁg * Вы знаете, почему эти данные? – user3060726

+0

честно, я не уверен, что может быть причиной этого. Что вы получаете от запроса на завиток команды line, не используя PHP-код? –

Смежные вопросы