2012-12-13 5 views
1

내 PHP 스크립트는 http_post_fields()를 사용하여 다른 서버에 게시물 요청을합니다. 그들은 모두, 지금 기능에 HTTP 주소의 다양한 시도http_post_fields()가 호스트 이름을 확인할 수 없습니다.

http_post_fields() [function.http-post-fields]: couldn't resolve host name; name lookup timed out 

: 스크립트가 가끔 작동

$g = http_post_fields("http://mysite.com", $some_array); 

있지만, 나는 종종이 오류를 얻을 : 여기 코드의 예입니다 이 오류가 발생합니다. 누군가 내 문제의 원인을 알고 있습니까?

+0

웹 서버에 DNS 관련 문제로 발생합니다. 어떤 종류의 서버 환경입니까? – jtheman

+0

CentOS Linux 서버. – GRY

+0

간헐적 인 DNS 오류는 UDP 패킷을 삭제하는 오버로드 된 라우터 일 수 있으며 너무 큰 응답 일 수 있으므로 방화벽 대신 어딘가에서 차단되는 TCP 연결이 대신 사용됩니다. –

답변

0

감사 메아리의 HTTPRequest와

<?php 
$ip = gethostbyname('www.example.com'); 

echo $ip; 
?> 

예. 결국, 나는이 PECL 라이브러리 (http_post_fields가 정의 된 곳)에 질려 버렸고 대신에 cURL을 사용했다. 여기에 도달하려는 목표는 서버간에 보안 티켓을 요청하는 것입니다. 물론 전체 모듈이 원활하게 작동하므로 이제는 cURL을 사용하고 있습니다. 다시 한번 감사드립니다.

1

당신은 ssh를 액세스 할 수있는 경우, 쉘 ping mysite.com에서이 명령을 시도하고 당신이 어떤 반응을 얻을 수 있는지

이 시도

서버에서 POST 요청을 전송 방지하기 위해 프록시/방화벽 서버 구성이있을 수 있으며, 도메인 확인을 IP로 확인하십시오. 상태 코드가 모든 입력 Kasun위한

<?php 
$r = new HttpRequest('http://www.example.com/', HttpRequest::METH_POST); 
$r->addPostFields(array('param1' => 'value')); 

try { 
    $http_req->send(); 
} catch (HttpException $ex) { 

} 

$response_code = $http_req->getResponseCode(); 
echo $response_code; 
?> 
+0

오케이. SSH를 서버에 ping'd 원격 서버. 0 % 손실. 그들은 의사 소통을 할 수 있습니다. 내 스크립트에 함수를 복사하여 매개 변수로 전체 성공을 목표 서버 및 포트로 전달했습니다. – GRY

+0

* edit- 원래 스크립트의 함수 호출이 여전히 실패하더라도 통신은 성공적입니다. – GRY

+0

업데이트 된 테스트 코드를 시도하고 ip를 grtting했는지 확인하십시오. – Kasun

관련 문제