当第一个响应在php中不被接受时,如何继续请求?
我是使用Guzzle软件包的新手,我想通过web api发送数据,当响应状态为OK或NOT时,我执行一些操作,否则状态为equal等待5秒后再次请求,或状态为equal未睡眠30秒。 这是我的密码当第一个响应在php中不被接受时,如何继续请求?,php,laravel-5,guzzle6,Php,Laravel 5,Guzzle6,我是使用Guzzle软件包的新手,我想通过web api发送数据,当响应状态为OK或NOT时,我执行一些操作,否则状态为equal等待5秒后再次请求,或状态为equal未睡眠30秒。 这是我的密码 $client = new Client(); $headers= [ 'Accept' => 'application/x-www-form-urlencoded', 'Content-Type' => 'application/x-w
$client = new Client();
$headers= [
'Accept' => 'application/x-www-form-urlencoded',
'Content-Type' => 'application/x-www-form-urlencoded',
];
$body = [
'phone2'=>'723457481',
'amount'=>'200'
];
$url = "http://192.168.31.51:8080/requesttrafic/";
$response = $client->Request("POST", $url, [
'handler' => $stack,
'headers'=>$headers,
'form_params'=>$body
]);
$contents = (string) $response->getBody();
// this $contents can be status 'ok','not' anything
那么,如何根据响应状态再次发送?
谢谢如果您想在状态为“ok”时再次发送,则:
if($contents!=='ok'){
$response = $client->Request("POST", $url, [
'handler' => $stack,
'headers'=>$headers,
'form_params'=>$body
]);
$contents = (string) $response->getBody();
}
如果“状态”指的是http状态,则可以通过以下方式验证:
$status = $response->getStatusCode();
if($status!==200){
//your request again
}
也许我理解错了你的问题。在这种情况下,请详细说明。如果您想在状态为“ok”时再次发送,则:
if($contents!=='ok'){
$response = $client->Request("POST", $url, [
'handler' => $stack,
'headers'=>$headers,
'form_params'=>$body
]);
$contents = (string) $response->getBody();
}
$response = $client->Request("POST", $url, [
'handler' => $stack,
'headers'=>$headers,
'form_params'=>$body
]);
$contents = (string) $response->getBody();
if($contents!=='ok'){
$response = $client->Request("POST", $url, [
'handler' => $stack,
'headers'=>$headers,
'form_params'=>$body
]);
$contents = (string) $response->getBody();
if($contents!=='ok'){
$response = $client->Request("POST", $url, [
'handler' => $stack,
'headers'=>$headers,
'form_params'=>$body
]);
$contents = (string) $response->getBody();
}else{
exit;
}
}
如果“状态”指的是http状态,则可以通过以下方式验证:
$status = $response->getStatusCode();
if($status!==200){
//your request again
}
也许我理解错了你的问题。在这种情况下,请详细说明。此答案缺少一些参数$contents是响应数据。@jdamour,我已经编辑了我的答案,可能这就是您要查找的。这是我现在使用的逻辑,多if语句和sleep()function@jdamour,那就完美了,如果您的问题已得到解决,请将答案标记为已接受,以关闭stackoverflow上的此线程。此答案缺少某些参数$contents是响应数据。@jdamour,我已编辑了我的答案,可能这就是您要查找的。这是我现在使用的逻辑multiple if语句和sleep()function@jdamour,那就完美了,如果你的问题已经解决,那么请将答案标记为已接受以关闭stackoverflow上的此线程。我已编辑了我的答案,可能这就是你正在寻找的答案。完美的话,如果你的问题已经解决,那么请将答案标记为已接受以关闭stackoverflow上的此线程我已编辑了我的答案,也许这就是你正在寻找的。完美的话,如果你的问题已经解决了,那么请在stackoverflow上标记接受的答案来关闭这个线程
$response = $client->Request("POST", $url, [
'handler' => $stack,
'headers'=>$headers,
'form_params'=>$body
]);
$contents = (string) $response->getBody();
if($contents!=='ok'){
$response = $client->Request("POST", $url, [
'handler' => $stack,
'headers'=>$headers,
'form_params'=>$body
]);
$contents = (string) $response->getBody();
if($contents!=='ok'){
$response = $client->Request("POST", $url, [
'handler' => $stack,
'headers'=>$headers,
'form_params'=>$body
]);
$contents = (string) $response->getBody();
}else{
exit;
}
}