2012-03-20 1 views
1

J'ai un script curl sur un site Web qui fait une demande de publication à un serveur en utilisant CURL. De l'autre côté j'utilise wkhtmltopdf pour générer un PDF avec le HTML reçu, cela fonctionne très bien quand https n'est pas activé sur le site web, mais dès que j'active https la genèse du PDF génère des erreurs.https/ssl causant des problèmes lors de l'envoi HTML sur curl

mon script boucle

$url = Yii::app()->params['pdfUrl']; //Equals http://xxx.xx.xxx.xxx/server/?r=pdf/generatePdf 

      $body = array(
       "client_url"=>Yii::app()->params['pdfClientURL'], 
       "client_id"=>Yii::app()->params['pdfClientID'], 
       "title"=>urlencode($title), 
       "content"=>urlencode(($content)) 

      ); 
      foreach($body as $key=>$value) { $body_str .= $key.'='.$value.'&'; } 
       rtrim($body_str,'&'); 

      curl_setopt ($c, CURLOPT_POST, true); 
      curl_setopt ($c, CURLOPT_POSTFIELDS, $body_str); 

      curl_setopt ($c, CURLOPT_RETURNTRANSFER, true); 
      $pdf = curl_exec ($c); 

      curl_close ($c); 
      header("Content-Type: application/pdf"); 
      header("Cache-Control: no-cache"); 
      header("Accept-Ranges: none"); 
      header("Content-Disposition: attachment; filename=".str_replace(' ', '_', $title).".pdf"); 
      echo $pdf; 
      Yii::app()->end(); 

Que pourrait-il être que https est à l'origine?

ERREURS-je ​​obtenir sur WKHTML2PDF

WKPDF system error: <pre>Loading pages (1/6) 
[> ] 0% 
[======> ] 10% 
[===========> ] 19% 
QSslSocket: cannot call unresolved function SSLv23_client_method 
QSslSocket: cannot call unresolved function SSL_CTX_new 
QSslSocket: cannot call unresolved function SSL_library_init 
QSslSocket: cannot call unresolved function ERR_get_error 
QPixmap: Cannot create a QPixmap when no GUI is being used 
QPixmap: Cannot create a QPixmap when no GUI is being used 
QPixmap: Cannot create a QPixmap when no GUI is being used 
QPixmap: Cannot create a QPixmap when no GUI is being used 
QPixmap: Cannot create a QPixmap when no GUI is being used 
QPixmap: Cannot create a QPixmap when no GUI is being used 
[============================================================] 100% 
Counting pages (2/6) 
[============================================================] Object 1 of 1 
Resolving links (4/6) 
[============================================================] Object 1 of 1 
Loading headers and footers (5/6) 
Printing pages (6/6) 
[> ] Preparing 
[============================================================] Page 1 of 1 
Done 
</pre> 
+0

Pouvez-vous nous donner les erreurs? –

+0

@Keeyai - Question mise à jour – Roland

+0

On dirait que wkhtml2pdf a du mal à effectuer sous ssl, mais je ne suis pas sûr de savoir pourquoi il fait quelque chose dans ssl. Ma première supposition est que puisque vous demandez avec https, wkhtml2pdf essaie aussi de récupérer des images en utilisant ssl. Je n'ai pas utilisé wkhtml2pdf sous ssl auparavant - pouvez-vous désactiver cela manuellement, ou peut-être charger explicitement les images avec http, ou même localement? Une autre approche consiste à résoudre le problème et à comprendre pourquoi wkhtml2pdf échoue avec son SSL - l'avez-vous compilé vous-même? –

Répondre

5

Ok, trouvé le problème après @Keeyai m'a fait dans la bonne direction. J'ai réussi à trouver ce poste, http://code.google.com/p/wkhtmltopdf/issues/detail?id=17&q=ssl et installé openssl-devel sur le serveur où wkhtml2pdf est installé et le problème résolu. Étant donné que le problème a été causé par des images en utilisant un lien https

yum install openssl-devel a fait l'affaire

+1

bon travail à résoudre le problème au lieu des symptômes! –

0

Jetez un oeil à the curl_setopts page.

Des choses comme CURLOPT_SSL_VERIFYPEER = false peuvent aider.

Jetez un oeil à travers cette page les différentes options relatives à ssl - vous trouverez vos réponses là-bas ...

+0

Je ai essayé cela et ça ne fonctionne pas – Roland

Questions connexes