PHP Rest Api Client

时间:2015-09-25 18:09:43

标签: php codeigniter rest curl client

我正在为一个Web服务PHP REST做客户端。我有方法的URL(插入)但是当我启动客户端时,服务器的响应始终为FALSE。我想知道问题是我的代码,还是服务器已关闭。这是代码。我正在使用框架CodeIgniter

谢谢!

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Service extends CI_Controller {

private $db1;

function __construct() {
    parent::__construct();
    $this->load->helper(array('string', 'form', 'url', 'file'));
    $this->load->library('session');
    $this->load->library('form_validation');
    $this->load->database();
}

function index() {
    // Consulto todos los distritos de colegios
    $this->load->model("service_model");

    $profesionales = $this->service_model->getAllProfesionalesDia();

    $unProfesional = array();

    foreach ($profesionales->result() as $p) {
        $unProfesional['NOMBRE'] = $p->NOMBRE;
        $unProfesional['APELLIDO'] = $p->APELLIDO;
        $unProfesional['ID_TIPODOC'] = $p->TIPO_DOCUMENTO_ID;
        $unProfesional['NRODOC'] = $p->NUMERO_DOCUMENTO;
        $unProfesional['SEXO'] = $p->SEXO;
        $unProfesional['FECHA_NACIMIENTO'] = $p->FECHA_NACIMIENTO;
        $unProfesional['ID_PAIS_NACIMIENTO'] = "1";
        $unProfesional['ID_LOC_NACIMIENTO'] = $p->LOC_NACIMIENTO;
        $unProfesional['ID_PAIS'] = "1";
        $unProfesional['EMAIL'] = $p->MAIL_1;
        $unProfesional['EMAIL2'] = $p->MAIL_2;
        $unProfesional['HABILITADO'] = 'SI';
        $unProfesional['TITULO'] = $p->DESCRIPCION;
        $unProfesional['ID_INSTITUCION_FORMADORA'] = $p->INSTITUCIONID;
        $unProfesional['FECHA_TITULO'] = $p->FECHA_TITULO;
        $unProfesional['ID_PROFESION_REFERENCIA'] = $p->REFERENCIA_ID;
        $unProfesional['ID_INSTITUCION_SEDE'] = "";
        $unProfesional['REVALIDA'] = 'NO';
        $unProfesional['ID_INSTITUCION_REVALIDA'] = 'NO';   
        $unProfesional['FECHA_REVALIDA'] = 'NO';
        $unProfesional['ID_PROFESION'] = $p->PROFESION_ID;  
        $unProfesional['ID_PROVINCIA_MATRICULA'] = $p->PROV_MATRICULA;
        $unProfesional['MATRICULA'] = $p->NUMEROMATRICULA;
        $unProfesional['FECHA_MATRICULA'] = $p->FECHAMATRICULA;
        $unProfesional['ID_SITUACION_MATRICULA'] = $p->ID_BAJA;
        $unProfesional['LIBRO'] = $p->LIBRO_MATRICULA;  
        $unProfesional['FOLIO'] = $p->FOLIO_MATRICULA;
        $unProfesional['ACTA'] = "";
        $unProfesional['EXPEDIENTE'] = "";
        $unProfesional['COMENTARIO'] = $p->COMENTARIO_MATRICULA;
        if (('numeromatricula' > '100000') && ('fechamatricula' < '01/01/2013')) {
            $unProfesional['REMATRICULACION'] = 'SI';   
        }
        else {
            $unProfesional['REMATRICULACION'] = 'NO';
        }
        $unProfesional['ID_ORIGEN_EMITE'] = "";                                                               
        $unProfesional['CALLE'] = $p->CALLE_RESIDENCIA; 
        $unProfesional['CALLE_NRO'] = $p->NUMERO_RESIDENCIA;
        $unProfesional['CALLE_PISO'] = $p->PISO_RESIDENCIA;
        $unProfesional['CALLE_DPTO'] = $p->DPTO_RESIDENCIA;
        $unProfesional['ID_LOCALIDAD_DOMICILIO'] = $p->LOC_RESIDENCIA;
        $unProfesional['ID_PROVINCIA_DOMICILIO'] = $p->PROV_RESIDENCIA;
        $unProfesional['ID_PAIS_DOMICILIO'] = '1';
        $unProfesional['CP'] = $p->CP_RESIDENCIA;
        if (isset($p->TELEFONO_ID)) {
            $telefonos = $this->service_model->getAllProfesionalesTel($p->PROFESIONAL_ID);
            $unProfesional['TIENE_TELEFONO'] = 'SI';
            for ($i = 1; $i <= 4; $i++) { 
                $telefono = $telefonos->row($i-1);
                if ($i <= $telefonos->num_rows()) {
                    $unProfesional["ID_TIPO_TE$i"] = isset($telefono->TIPO_TELEFONO_ID) ? $telefono->TIPO_TELEFONO_ID : "";
                    $unProfesional["TE$i"] = isset($telefono->NUMERO) ? $telefono->NUMERO : ""; 
                }               
                else {
                    $unProfesional["ID_TIPO_TE$i"] = "";
                    $unProfesional["TE$i"] = "";
                }                   
            }
        } 
        else{
            $unProfesional['TIENE_TELEFONO'] = 'NO'; 
            $unProfesional['ID_TIPO_TE1'] = "";
            $unProfesional['ID_TIPO_TE2'] = "";
            $unProfesional['ID_TIPO_TE3'] = "";
            $unProfesional['ID_TIPO_TE4'] = "";
            $unProfesional['TE1'] = "";
            $unProfesional['TE2'] = "";
            $unProfesional['TE3'] = "";
            $unProfesional['TE4'] = "";
        }
    }


    $peticionWS = array("usuario" => "mcariste", "clave" => "IYEOQLKFBY" , "profesional" => $unProfesional );

    // Defino URL del REST a consumir

    $ch = curl_init();

    //Opciones de cURL
    curl_setopt($ch, CURLOPT_URL, "https://sisa.msal.gov.ar/sisa/services/rest/profesional/insertar");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);


    // Formateo parámetro para enviar al REST
    $json = array(json_encode($peticionWS));

 //     var_dump($json); die()

    // Opciones de configuración de CURL
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-HTTP-Method-Override: PUT'));
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($json));


    // Realizo la llamada al REST
    $respuesta = curl_exec($ch);

    var_dump($respuesta); die();

    if ($respuesta === false) {
        $info = curl_getinfo($ch);
        curl_close($ch);
        die('ocurrio un error durante la llamada al REST SIISA. Info: ' . var_export($info));
    } 

    curl_close($ch);


    // Proceso la respuesta obtenida 
    $decoded = json_decode($respuesta);
    if (isset($decoded->respuesta->estado) && $decoded->respuesta->estado == 'ERROR_AUTENTICACION') {
        // Se muestra el problema
        echo "Ocurrio un Error";
    }

    if (isset($decoded->respuesta->estado) && $decoded->respuesta->estado == 'OK') {
        // Todo bien, continuo enviando los demás profesionales
        echo "Se cargo bien el profesional";
    }
}
}

0 个答案:

没有答案