Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/02/2012, 18:13
dvex_92
 
Fecha de Ingreso: septiembre-2011
Ubicación: Peru - Lima
Mensajes: 16
Antigüedad: 12 años, 7 meses
Puntos: 0
Exclamación ¿Como puedo enviar datos a un WebService usando cURL?

Bueno, tengo un problema usando cURL de PHP para enviar datos dede un formulario a un webservice (REST):

Usando HTML si funciona:

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.     <head>
  3.         <title></title>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5.     </head>
  6.     <body>
  7.         <form method="POST" enctype="multipart/form-data" action="http://[ip]/eventmobile/attendee_management/attendee">
  8.             <input type="text" name="attendee[name]" value="" />
  9.             <input type="text" name="attendee[email]" value="" />
  10.             <input type="text" name="attendee[phone]" value="" />
  11.             <input type="text" name="attendee[event_id]" value="" />
  12.             <input type="submit" value="Enviar" />
  13.         </form>
  14.     </body>
  15. </html>

Pero usando cURL... (otro formulario). No me sale:

Código PHP:
Ver original
  1. $name = $_POST['name']';
  2.    $email = $_POST['email']';
  3.     $phone = $_POST['phone']';
  4.    $event_id = $_POST['event_id'];
  5.    
  6.    $attendee['name'] = $name;
  7.    $attendee['email'] = $email;
  8.    $attendee['phone'] = $phone;
  9.    $attendee['event_id'] = $event_id;
  10.    
  11.    $header = array('Content-Type: multipart/form-data');
  12.  
  13.    $url_login = 'http://[ip]/eventmobile/users/sign_in';
  14.     $url_target = 'http://[ip]/eventmobile/attendee_management/attendee';
  15.    
  16.     $ch = curl_init($url_target);
  17.  
  18.         curl_setopt($ch, CURLOPT_HEADER, TRUE);
  19.         curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
  20.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  21.         curl_setopt($ch, CURLOPT_FAILONERROR, TRUE);
  22.         $result = curl_exec($ch);
  23.         $getinfo = curl_getinfo($ch); // get http_code=200
  24.        
  25.         curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  26.         curl_setopt($ch, CURLOPT_POST, count($att));
  27.         curl_setopt($ch, CURLOPT_POSTFIELDS, $attendee);
  28.         curl_setopt($ch, CURLOPT_FAILONERROR, TRUE);
  29.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  30.         $result = curl_exec($ch);
  31.         $getinfo = curl_getinfo($ch, CURLINFO_HTTP_CODE); // get http_code=200
  32.        
  33.     curl_close($ch);

Lo MAS raro es que siempre obtengo la variable $getinfo = 200 (OK). Pero cuando veo el webservice, no aparece nada. (Y cuando lo envio desde HTML si lo recibe y lo muestra).

Ademas, me eh dado cuenta que siempre... Si pongo :
Código PHP:
Ver original
  1. curl_setopt($ch, CURLOPT_URL, $url_target);

Esto me redirige a otra URL que es la de LOGIN: $url_login

No entiendo bien que es lo que sucede. Aqui les dejo el codigo que habia echo antes y que tampoco me funcionaba: http://pastebin.com/NisF2YU2

Espero que me ayuden, gracias :D