Jump to content

Error 401 al subir imagenes via Servicio web con cURL


Recommended Posts

Hola,

Tengo un problema que se reproduce en algunas tiendas de la versión 1.5.6.1 (en otras no) y en distintos hostings.

Al intentar subir una imagen con cURL me da el error siguiente:
El código es el mismo para ambos:
 

define("PS_SHOP_PATH", 'http://midominio.com/');
define("PS_WS_AUTH_KEY", 'XXXXXXXXXXX' );
$img= _PS_TMP_IMG_DIR_  .$mifoto ; 

$curl = curl_init();
curl_setopt($curl,CURLOPT_HEADER, true);
curl_setopt($curl,CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl,CURLINFO_HEADER_OUT, true);
curl_setopt($curl, CURLOPT_URL, PS_SHOP_PATH . '/api/images/products/' .  $id_produc );
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HTTPAUTH, 'CURLAUTH_BASIC');
curl_setopt($curl, CURLOPT_USERPWD, PS_WS_AUTH_KEY  );
curl_setopt($curl, CURLOPT_POSTFIELDS, array('image' => '@'.$img) );
if( ! $result = curl_exec($curl))
     { echo $crlf .'Error : '.$idproduc.' '.$img.' -> '.curl_error($curl). $crlf; }
else { echo $result. '<br>. Image added: ' . $nomfoto . $crlf  ; }

curl_close($curl);  

Al ejecutar curl_exec($curl) no devuelve falso, pero no hace nada (no añade la imagen a ps_images ni genera las miniaturas) y devuelve:

HTTP/1.1 100 Continue HTTP/1.1 401 Unauthorized Server: nginx
Date: Thu, 13 Mar 2014 04:36:43 GMT
Content-Type: text/html; charset=utf-8 Content-Length: 0
Connection: keep-alive
WWW-Authenticate: Basic realm="Welcome to PrestaShop Webservice, please enter the authentication key as the login. No password required."
Set-Cookie: d016c4f59c9c5afccdfacac7a5eaeabb=scp0ebxtPV2JO61O5kxfRnWYQSZx5ofvZ8EW2DJxg5lu%2FTf%2BTZmjJFe0sJR1QFz8SWdkd2Z1XhBYqCwZeRFMQoo9YQa3CxqL0AjjwnoyhR8%3D000079; expires=Wed, 02-Apr-2014 04:36:43 GMT; path=/; domain=midominio.com; httponly Vary: Host,Accept-Encoding X-Powered-By: PleskLin

En otra tienda devuelve:

HTTP/1.1 100 Continue HTTP/1.1 401 Unauthorized
Date: Tue, 11 Mar 2014 12:55:30 GMT
Server: Apache Vary: Host,Accept-Encoding
WWW-Authenticate: Basic realm="Welcome to PrestaShop Webservice, please enter the authentication key as the login. No password required." Set-Cookie: d016c4f59c9c5afccdfacac7a5eaeabb=I73CVkroiGPA%2F4UX%2F7335CgufWsoycErS8CFegXSq9B7FhBGJGfqHFWnxgy62pbwp26MTZJvGpBqJFjTCTpMAk%2FBf4ZTzpcehEuU1HP5%2Fm0%3D000079; expires=Mon, 31-Mar-2014 12:55:30 GMT; path=/tienda/; domain=midominio.es; httponly Content-Length: 0 Content-Type: text/html; charset=utf-8
 


¿Alguien sabe a que puede ser debido o que estoy haciendo mal?

Muchas gracias de antemano. Saludos.

Quim

Link to comment
Share on other sites

  • 2 weeks later...

Hola de nuevo,

 

Investigando el error , parece que sólo se da en servidores con php 5.4.4

 

Me da el mismo error con distintas versiones de prestashop (1.4.10.0, 1.5.6.1 y 1.6.0.5) en php 5.4.4.

Sin embargo,en las mismas tiendas en php 5.2 funciona bien

 

¿Sabeis si hay algun problema con el webservice de prestashop y php 5.4.4 ?

 

Saludos,

Edited by qhe (see edit history)
Link to comment
Share on other sites

  • 6 months later...

Hola de nuevo,

 

Investigando el error , parece que sólo se da en servidores con php 5.4.4

 

Me da el mismo error con distintas versiones de prestashop (1.4.10.0, 1.5.6.1 y 1.6.0.5) en php 5.4.4.

Sin embargo,en las mismas tiendas en php 5.2 funciona bien

 

¿Sabeis si hay algun problema con el webservice de prestashop y php 5.4.4 ?

 

Saludos,

 

¿Alguna novedad sobre esto?

 

A mi tampoco me funciona con PHP 5.5

Link to comment
Share on other sites

  • 1 month later...

Hola,

 

El problema estaba en la comillas de CURLAUTH_BASIC:

curl_setopt($curl, CURLOPT_HTTPAUTH, 'CURLAUTH_BASIC');

 

En php 5.4 es una constante:

curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

 

Quitando las comillas ya funciona.

Saludos,

  • Like 1
Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...