2017-01-29 4 views
2

Drupal 7 사이트에 등록 할 때 유효한 전화 번호를 입력해야합니다. 간단한 검증 만하는 것이 아니라 Numverify.com API를 사용하여 국가 별 숫자 형식을 확인하고 추가 정보를 얻습니다. 이것은 json 객체를 반환하는 컬 요청을 통해 수행됩니다.테스트를 위해 HTTP 408 시간 초과 오류를 재현하려면 어떻게해야합니까?

며칠 전에 API에 도달 할 수 없었고 선견지명이 부족하여 사용자가 API 요청을 우회 할 때까지 등록 할 수 없었습니다.

앞으로 이런 일이 발생하지 않도록하려면 408과 같은 오류 코드를 올바르게 처리 할 수 ​​있어야합니다. 누군가가 테스트 목적으로 로컬 또는 다른 시간 제한 요청을 복제 할 수있는 방법을 알려주시겠습니까?

답변

1

@hanshenrik 덕분에 나는 그의 대답을 자신의 연구와 결합 할 수있었습니다.

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, "timeout.php"); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); 
$result = curl_exec($curl); 
$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE); 
curl_close($curl); 

echo $httpcode; 

중요한에게 :

컬을 사용하여 테스트 및 처리 목적 (408) (또는 다른 응답)을 얻으려면, 내 index.php 파일에서 다음 http_response_code(408);를 포함하는 PHP 파일을 만들어, 나는 컬을 시작 행은 이전 페이지에서 http 응답 코드를 반환하는 curl_get_info 섹션입니다. 그런 다음 내 index.php 파일에서이 코드를 적절하게 처리 할 수 ​​있습니다.

이 방법이 가장 효율적인 방법인지 정말 모르겠으니 아무도 내 답변을 개선 할 수 없다면 언제든지 알려주세요.

그동안 다른 사람이 도움이되기를 바랍니다.

0

D7에 대해서는 확실하지 않지만 GuzzleHttp를 통해 400 및 500 시리즈 응답 코드가 포함 된 RequestException을 시도 할 수 있음을 알고 있습니다. 추가로 제한 시간을 설정할 수 있으므로 X 초 이내에 응답하지 않으면 계속 진행됩니다. https://stackoverflow.com/a/11066378/7118098

0

또한 CURL 객체에 CURLOPT_CONNECTTIMEOUT 및 CURLOPT_TIMEOUT 옵션을 제공 할 수도 있습니다. 또한 Firefox 개발 버전의 최신 버전으로 느린 네트워크를 시뮬레이션 할 수도 있습니다. 그러나 얼마나 지연을 제어 할 수 있는지 잘 모르겠습니다. 이 기능에 대한 자세한 내용은 article을 참조하십시오.

2

콘텐츠가 포함 된 PHP 페이지를 만들려면 : <?php http_response_code(408); 그리고 그것을 curl로 가져 오십시오.

+0

정확히 내가 원했던 것을 사용하는 방법을 알아내는 데 시간이 걸렸지 만 이것은 내가 찾고 있던 것과 정확히 같습니다. 고마워 –