CURL ERROR: Recv failure: Resetowanie połączenia przez peera - PHP Curl
Mam ten dziwny błąd,CURL ERROR: Recv failure: Resetowanie połączenia przez peer
Tak się dzieje, jeśli nie połączyłem się z serwerem i nagle próbowałem połączyć się z serwerem przez CURL w PHP, pojawia się błąd. Po ponownym uruchomieniu skryptu CURL błąd znika, a następnie działa dobrze przez cały czas, jeśli pozostawię serwer zdalny bezczynny przez około 30 minut lub uruchomię ponownie serwer zdalny i spróbuję połączyć się ponownie, ponownie otrzymam błąd. Wygląda więc na to, że połączenie jest bezczynne i nagle serwer budzi się, a następnie działa, a następnie ponownie śpi.
Tak wygląda mój skrypt CURL.
<code>$url = Yii::app()->params['pdfUrl']; $body = 'title='.urlencode($title).'&client_url='.Yii::app()->params['pdfClientURL'].'&client_id='.Yii::app()->params['pdfClientID'].'&content='.urlencode(htmlentities($content)); $c = curl_init ($url); $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); curl_setopt ($c, CURLOPT_CONNECTTIMEOUT , 0); curl_setopt ($c, CURLOPT_TIMEOUT , 20); $pdf = curl_exec ($c); $errorCode = curl_getinfo($c, CURLINFO_HTTP_CODE); $curlInfo = curl_getinfo($c); $curlError = curl_error($c); curl_close ($c); </code>
Jestem całkowicie pozbawiony pomysłów i rozwiązań, proszę pomóż, docenię to !!!
Jeśli zwerbuję dane wyjściowe, aby zobaczyć, co się dzieje przy użyciu
<code>curl_setopt ($c, CURLOPT_VERBOSE, TRUE); curl_setopt($c, CURLOPT_STDERR, $fp); </code>
Dostaję następujące
<code>* About to connect() to 196.41.139.168 port 80 (#0) * Trying 196.x.x.x... * connected * Connected to 196.x.x.x (196.x.x.x) port 80 (#0) > POST /serve/?r=pdf/generatePdf HTTP/1.1 Host: 196.x.x.x Accept: */* Content-Length: 7115 Content-Type: application/x-www-form-urlencoded Expect: 100-continue * Recv failure: Connection reset by peer * Closing connection #0 012 20:23:49 GMT < Server: Apache/2.2.15 (CentOS) < X-Powered-By: PHP/5.3.3 < Connection: close < Transfer-Encoding: chunked < Content-Type: text/html; charset=UTF-8 < * Closing connection #0 </code>
Dodałem w tym miejscu usunięcie domyślnego nagłówka i nadal nie mam szczęścia:
<code>curl_setopt ($c, CURLOPT_HTTPHEADER, array( 'Expect:' ) ); > Accept: */* Content-Length: 8414 Content-Type: > application/x-www-form-urlencoded > > * Recv failure: Connection reset by peer > * Closing connection #0 r: Apache/2.2.15 (CentOS) < X-Powered-By: PHP/5.3.3 < Connection: close < Transfer-Encoding: chunked < > Content-Type: text/html; charset=UTF-8 < > * Closing connection #0 </code>