我试图制作一个简单的API。但是,不确定为什么,但我得到的是真实而不是应该返回的值。
这是卷曲代码。
try
{
$target_url = "my url";
$post = array(
'auth_token' => '123456' // post your auth token here
//'file_contents' => '@' . $_FILES['file']['temp_name']); //the name of the input type is file, you can change it in your HTML.
);
$ch = curl_init();
if($ch == false)
{
echo "Couldnt initialize curl";
}
curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$result=curl_exec ($ch);
if (FALSE === $result)
throw new Exception(curl_error($ch), curl_errno($ch));
var_dump($result);
curl_close ($ch);
}
catch(Exception $e)
{
trigger_error(sprintf(
'Curl failed with error #%d: %s',
$e->getCode(), $e->getMessage()),
E_USER_ERROR);
}
获取内容的文件: -
return $_POST['auth_token']
但是, var_dump 的结果是bool(true)而不是123456。 为什么会这样?
答案 0 :(得分:9)
您需要echo
而不是return
:
echo $_POST['auth_token'];
您需要CURLOPT_RETURNTRANSFER
让curl_exec()
返回内容:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
成功时返回TRUE,失败时返回FALSE。但是,如果 设置CURLOPT_RETURNTRANSFER选项后,它将返回结果 成功,失败就错了。
答案 1 :(得分:0)
curl_setopt($ ch,CURLOPT_RETURNTRANSFER,true); 您需要将其放置为以正确的格式返回数据,也可以使用gettype($ string);
检查输出的数据类型