2017-01-29 78 views
2

Drupal 7サイトの登録の一環として、有効な電話番号を入力する必要があります。単純な検証だけでなく、Numverify.com APIを使用して、国ごとに番号の形式を確認し、追加情報を取得します。これはjsonオブジェクトを返すカール要求によって行われます。テスト用にHTTP 408タイムアウトエラーを再現するにはどうすればよいですか?

先日、APIに数時間到達できず、先見性が不足しているため、APIリクエストを迂回するまでユーザーは登録できませんでした。

これを防ぐには、408などのエラーコードを適切に処理できるようにする必要があります。テスト目的のために、タイムアウトリクエストをローカルまたは他の方法で複製する方法を教えてもらえますか?

答えて

1

@hanshenrikのおかげで、私は彼の答えを自分の研究と組み合わせることができました。カールを使用してテストや取り扱いの目的のために408(または他の応答が)、私は私のindex.phpファイルから、その後http_response_code(408);を含むPHPファイルを作っ得るために

、私はカールを開始:

$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; 

重要行は、前のページからhttp応答コードを返すcurl_get_infoセクションです。次に、このコードをindex.phpファイルで適切に処理できます。

これが最も効率的な方法であるかどうかはわかりません。誰でも自分の回答を改善できる場合は、気軽にご利用ください。

一方、私はこれが他の誰かを助けることを願っています!

0

特にD7についてはわかりませんが、GuzzleHttpを試して、400と500シリーズのレスポンスコードを含むRequestExceptionをキャッチすることができます。さらにタイムアウトを設定して、X秒以内に応答しない場合はそのまま続行することもできます。 https://stackoverflow.com/a/11066378/7118098

0

最後のバージョンのFirefox Development Editionでシミュレーションを行うこともできます。しかし、どのくらいの遅延を制御できるか分かりません。この機能の詳細については、articleを参照してください。

2

コンテンツを含むPHPページを作成してください:<?php http_response_code(408);そしてそれをcurlで取得してください。

+0

これはまさに私が探していたものですが、私が望んだものをどのように使用するかはわかりました。ありがとう –

関連する問題