我是cURL的新手,我正在设置一个测试环境,使用PHP发送cURL POST请求,然后我需要模拟服务器(响应)程序(PHP也),状态代码和有效负载。在查看和阅读cURL以及相应的文档和相关的RFC文档之后,请求方面有很多示例,但我找不到响应方面的相关示例。我的请求代码如下:
$url = 'http://localhost/curlresponder.php';
$fields = array(
'City' => urlencode('Hokeywaka'),
'State' => urlencode('IL'),
'Zip' => urlencode('60677'),
);
foreach($fields as $key => $value)
{$fields_string .= $key . "=" . $value . '&';}
rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
if ($result === FALSE)
{echo 'Return failure ' . '<br />';
else
{Process $result;}
现在我需要知道响应的程序代码是什么 - 假设请求被接收并成功处理,响应代码200将被发送回附加有效负载(我收集的请求是POST后也是POST。
答案 0 :(得分:0)
您只需要远程页面回发JSON脚本即可。通过Post back我只是在页面上回显一个JSON字符串。您可以在$ result var中使用它。您可能希望创建一个API访问密钥,以确保在您认为可能存在安全问题时,没有其他人使用它。
$result = curl_exec($ch);
$result = json_decode($result,true);
if ($result['status']=="ok"){
echo "Good request";
}else{
echo "Bad request";
}
答案 1 :(得分:0)
你可以使用curl_getinfo函数获取你想要的信息,以及像这样的代码
<?php
// Create a cURL handle
$ch = curl_init('http://www.stackoverflow.com/');
// Execute
curl_exec($ch);
// Check HTTP status code
if (!curl_errno($ch)) {
switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
case 200: # OK
break;
default:
echo 'Unexpected HTTP code: ', $http_code, "\n";
}
}
// Close handle
curl_close($ch);
?>