علی بهشتی
2 سال پیش توسط علی بهشتی مطرح شد
0 پاسخ

مشکل در ارسال ریکوئست به سرور در وردپرس

سلام رفقا ، بنده یه پلاگین نوشتم که از پلاگین یه ریکوئست به کرالر میره و...
من کرالر رو اوردم رو سرور ، بعد اینجوریه که وقتی با وردپرس لوکال بهش ریکوئست میدم همه چی اوکیه و کاراشو میکنه
اما وقتی با سایتی که انلاینه بهش ریکوئست میدم این ارور رو میده
Error: cURL error 3: No URL set (Code: http_request_failed)
فایروال سرور رو کلا غیرفعال کردم
این کد هم بخش ارسال ریکوئست به سرور هستش که ادرسش درسته

$url = "http://185.208.175.249:8000/upload";

    // Logging URL
    error_log('URL: ' . $url);
    echo 'URL: ' . $url . '<br>';

    $dataUrl = site_url() . "/wp-json/wp/v2/prc/all_info";
    echo 'Data URL: ' . $dataUrl . '<br>';

    // Fetch data from the WordPress REST API
    $response = wp_remote_get($dataUrl, array('timeout' => 120));

    if (is_wp_error($response)) {
        error_log('Error fetching data: ' . $response->get_error_message());
        echo 'Error: ' . $response->get_error_message();
        return;
    }

    $data = wp_remote_retrieve_body($response);
    error_log('Fetched data: ' . $data);
    echo 'Fetched data: ' . $data . '<br>';

    $data_array = json_decode($data, true);

    if ($data_array === null && json_last_error() !== JSON_ERROR_NONE) {
        error_log('JSON decode error: ' . json_last_error_msg());
        echo 'Error: JSON decode error - ' . json_last_error_msg();
        return;
    }

    if ($data_array) {
        $data_array['strategy'] = [['strategy' => $strategy]];
        $data = json_encode($data_array, JSON_UNESCAPED_UNICODE);
        error_log('Data being sent: ' . $data);
        echo 'Data being sent: ' . $data . '<br>';
    } else {
        error_log('Invalid data format');
        echo 'Error: Invalid data format';
        return;
    }

    error_log('Data: ' . $data);

    if (empty($url)) {
        error_log('URL is empty');
        echo 'Error: URL is empty';
        return;
    }

    // Send data to the external URL using POST method
    $response = wp_remote_post($url, array(
        'method'      => 'POST',
        'timeout'     => 300,
        'body'        => $data,
        'headers'     => array(
            'Content-Type' => 'application/json'
        )
    ));

    if (is_wp_error($response)) {
        $error_message = $response->get_error_message();
        $error_code = $response->get_error_code();
        error_log('Error sending data: ' . $error_message . ' (Code: ' . $error_code . ')');
        echo 'Error: ' . $error_message . ' (Code: ' . $error_code . ')';
    } else {
        $body = wp_remote_retrieve_body($response);
        error_log('Response from server: ' . $body);
        echo 'Response from server: ' . $body;
    }
}
?>