نمایش نتایج 1 تا 5 از 5

نام تاپیک: curl - خطای 504 Gateway Timeout

  1. #1
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    تهران
    پست
    178

    Question curl - خطای 504 Gateway Timeout

    سلام دوستان
    من در php با curl به یک api وصل میشم و یکسری پارامتر براش POST میکنم در قالب xml و یکسری داده از اون میگیرم در جواب به صورت xml تا اینجا مشکلی نیست
    مشکل زمانی هست که سروری که api روش هست بعضی وقت ها خطای 504 میده (حتی با POST MAN)
    و من نمیتونم این خطا رو مدیریت کنم
    در اصل کد های من بعد از اجرای دستور :
    $output=curl_exec($ch);

    دیگه کار نمیکنه و مستقیم در صفحه مرورگر برای کاربر مینویسه 504 Gateway Timeout
    چطوری باید این خطا رو handling کنم و پیام خطای خودم روبه کاربر نمایش بدم!!!
    تنضیمات php ini من:
    کد HTML:
    max_input_time=60max_execution_time=60upload_max_filesize=1000000Mpost_max_size=259200Mmemory_limit=1024M
    اینم کد من:



    error_reporting(E_ALL); set('display_errors','off');ini_set("log_errors",1 );set_time_limit(0);ignore_user_abort(true);
    class myclass{ $api_url='http://abc.ir:8080/mypage'; public $content_type='application/xml'; public $accept='application/xml'; public $authorization='dgdfgdfgdgvdfgdgf'; public $curl_timeout=60; public $curl_debug_file='log.txt'; function get_data($xml_content) { try{ if(filter_var($this->api_url,FILTER_VALIDATE_URL)){ $ch=curl_init($this->api_url); curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-Type: '.$this->content_type,'Accept: '.$this->accept,'Authorization: '.$this->authorization)); curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_POSTFIELDS,"$xml_content") ; curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_TIMEOUT,$this->curl_timeout); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0); // error reporting curl_setopt($ch,CURLOPT_VERBOSE,true); $verbose=fopen($this->curl_debug_file,'a'); curl_setopt($ch,CURLOPT_STDERR,$verbose);
    // execute request $output=curl_exec($ch);
    // debug result $response=curl_getinfo($ch,CURLINFO_HTTP_CODE); //check if 504 return
    // close connections curl_close($ch);
    if($response=='200'){ // get response from api $output=new SimpleXMLElement($output); return array(true,$output); } else{ return array(false,'1003'); } } else{ return array(false,'1002'); } }catch(Exception $e){ return array(false,'1001'); } }}


    وقتی api به من 504 بده بعد از اجرای خطی که کد :

    $output=curl_exec($ch);


    داخلش هست و کد های بعد آن اجرا نمیشود در مرورگر کاربر در یک صفحه سفید مینویسه Gateway Timeout

    نکته : اگر سروری که api میده درست باشه من کدم کار میکنه بعضی مواقع فقط api به من 504 میده

  2. #2
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: curl - خطای 504 Gateway Timeout

    برای کنترل اررور از try/catch میتونی استفاده کنی

  3. #3
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    تهران
    پست
    178

    نقل قول: curl - خطای 504 Gateway Timeout

    دوست عزیر اگر کد من رو تو یک فایل php کپی میکردی میدیدی که این دستورات رو گذاشتم

    حتی برای curl هم کنترل خطا انجام دادم

    حتی برای جوابی که از curl میاد responsive هدر هم چک میکنم که 200 باشه

  4. #4
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    تهران
    پست
    178

    نقل قول: curl - خطای 504 Gateway Timeout

    کسی بلد نیست!!!!

  5. #5
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: curl - خطای 504 Gateway Timeout

    نمیدونم مشکلت حل شده یا نه. ولی نگفتی $response توی این حالت چی برمیگردونه ؟! احتمالا نباید ۲۰۰ باشه ! مشکلت مربوط به سرور میشه و اونها باید تنظیماتشون را بهینه کنن.

تاپیک های مشابه

  1. 504 Gateway Time-out
    نوشته شده توسط Mehr@ban در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 0
    آخرین پست: دوشنبه 02 مرداد 1396, 14:08 عصر
  2. افزایش زمان برای خطای timeout
    نوشته شده توسط محمدحسام در بخش Access
    پاسخ: 5
    آخرین پست: چهارشنبه 23 فروردین 1391, 11:45 صبح
  3. چگونگی رفع خطای timeout expire
    نوشته شده توسط as_re63 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 1
    آخرین پست: دوشنبه 20 آبان 1387, 15:10 عصر
  4. خطای timeout در زمان connectشدن به sql
    نوشته شده توسط shadi shiton bala در بخش VB.NET
    پاسخ: 2
    آخرین پست: یک شنبه 22 مهر 1386, 23:33 عصر
  5. خطای Cgi TimeOut در دلفی(روش زیاد کردنTimeOut سرور در دلفی؟)
    نوشته شده توسط anoush در بخش توسعه نرم افزارهای تحت شبکه
    پاسخ: 1
    آخرین پست: سه شنبه 10 تیر 1382, 20:01 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •