Helpex - Trao đổi & giúp đỡ Đăng nhập
72

Tôi gửi mã hàng tới dịch vụ web ở định dạng xml bằng cUrl (php). Tôi nhận được phản hồi chính xác trong localhost, nhưng khi nào thì máy chủ nó hiển thị

Lỗi cURL (7): không thể kết nối với máy chủ

Và đây là mã của tôi:

function xml_post($post_xml, $url)
{
    $user_agent = $_SERVER['HTTP_USER_AGENT'];

    $ch = curl_init();    // initialize curl handle
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_FAILONERROR, 1);          
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);    
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 50); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_xml); 
    curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
//  curl_setopt($ch, CURLOPT_PORT, $port);          

    $data = curl_exec($ch);
    $curl_errno = curl_errno($ch);
    $curl_error = curl_error($ch);
    if ($curl_errno > 0) {
            echo "cURL Error ($curl_errno): $curl_error\n";
    } else {
            echo "Data received\n";
    }
    curl_close($ch);

    echo $data;
}

Tôi gửi mã hàng đến kiểm đếm và lấy thông tin chi tiết từ đó. Tôi đã thử sử dụng cả hai phiên bản php 4+ và php5 +, không có gì hiệu quả Bất kỳ giải pháp nào.

72 hữu ích 3 bình luận 481k xem chia sẻ
10 trả lời 10
51

Mã lỗi CURL 7 (CURLE_COVERNT_CONNECT)

rất rõ ràng ... nó có nghĩa là Failed to connect() to host or proxy.

Đoạn mã sau sẽ hoạt động trên bất kỳ hệ thống nào:

$ch = curl_init("http://google.com");    // initialize curl handle
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
print($data);

Nếu bạn không thể nhìn thấy trang google thì .. your URL is wronghoặc bạn có một số firewallhoặc restrictionvấn đề.

51 hữu ích 5 bình luận chia sẻ
26

Lỗi “CURL ERROR 7 Không kết nối được với Quyền bị từ chối” gây ra khi vì bất kỳ lý do gì yêu cầu curl bị chặn bởi một số tường lửa hoặc thứ tương tự.

bạn sẽ phải đối mặt với vấn đề này khi bao giờ yêu cầu cuộn không có với các cổng tiêu chuẩn.

Ví dụ: nếu bạn cuộn vào một số URL có trên cổng 1234, bạn sẽ gặp phải vấn đề này khi URL có cổng 80 sẽ cung cấp cho bạn kết quả dễ dàng.

Thông thường nhất, lỗi này đã được thấy trên CentOS và bất kỳ hệ điều hành nào khác có 'SElinux'.

bạn cần phải tắt hoặc thay đổi 'SElinux' thành dễ dãi

hãy xem cái này

http://www.akashif.co.uk/php/curl-error-7-failed-to-connect-to-permission-denied

Hi vọng điêu nay co ich

26 hữu ích 5 bình luận chia sẻ
9

Nếu bạn đã thử tất cả các cách mà không thành công, hãy thử một lệnh sau:

setsebool -P httpd_can_network_connect on
9 hữu ích 1 bình luận chia sẻ
5

Trong PHP, Nếu mạng của bạn dưới proxy. Bạn nên đặt URL và cổng proxy

curl_setopt($ch, CURLOPT_PROXY, "http://url.com"); //your proxy url
curl_setopt($ch, CURLOPT_PROXYPORT, "80"); // your proxy port number

Đây là giải quyết vấn đề của tôi

5 hữu ích 0 bình luận chia sẻ
4

Trong trường hợp của tôi, tôi đã có một cái gì đó giống như cURL Error (7): ... Operation Timed Out. Tôi đang sử dụng kết nối mạng của công ty tôi đang làm việc. Tôi cần tạo một số biến môi trường. Tiếp theo làm việc cho tôi:

Trong thiết bị đầu cuối Linux:

$ export https_proxy=yourProxy:80
$ export http_proxy=yourProxy:80  

Trong windows, tôi đã tạo (giống nhau) các biến môi trường theo cách của windows.

Tôi hy vọng nó sẽ giúp!

Trân trọng!

4 hữu ích 1 bình luận chia sẻ
2

Bạn có thể truy cập URL đó bằng trình duyệt hoặc bằng tập lệnh PHP không? Lỗi hiển thị là bạn không thể kết nối. Vì vậy, trước tiên hãy xác nhận rằng URL có thể truy cập được.

2 hữu ích 1 bình luận chia sẻ
1

Kiểm tra xem cổng 80 và 443 có bị chặn không. hoặc nhập - IP graph.facebook.com và nhập nó vào tệp etc / hosts

1 hữu ích 0 bình luận chia sẻ
1

bạn cũng có thể nhận được điều này nếu bạn đang cố gắng truy cập cùng một URL với nhiều yêu cầu HTTP cùng một lúc. Nhiều yêu cầu curl sẽ không thể kết nối và do đó, trả về với lỗi

1 hữu ích 0 bình luận chia sẻ
1

Sự cố này cũng có thể do thực hiện cuộc gọi curl tới https khi nó không được định cấu hình trên thiết bị từ xa. Gọi qua http có thể giải quyết vấn đề này trong những trường hợp này, ít nhất là cho đến khi bạn định cấu hình ssl trên điều khiển từ xa.

1 hữu ích 0 bình luận chia sẻ
1

Trong trường hợp của tôi, sự cố là do nhà cung cấp dịch vụ lưu trữ mà tôi đang sử dụng chặn các gói http được gửi đến khối IP của họ có nguồn gốc từ trong khối IP của họ. Không thể tin được !!!

1 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ php xml curl , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading