我正在将数据和文件作为数组传递给我的API。
但是在API级别上,我检查接收者是否为数组格式。
在我的代码中,我将数据作为数组传递,但是API返回错误,表明我的数据不是数组形式。
请问我在这里怎么做错了?
错误
确保您将目标字段作为数组返回
客户端
if(function_exists('curl_file_create'))
{
$cFile = curl_file_create($file_name_with_full_path);
} else {
$cFile = '@' . realpath($file_name_with_full_path);
}
$post = array( 'destination' => ['00448923202'], 'file'=>$cFile);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post));
$result=curl_exec ($ch);
return $result;
curl_close ($ch);
API级别
$destination = $request->post('destination');
if (!is_array($destination)) {
return response()->json([
'status' => 'error',
'message' => 'Make sure you are passing the destination field as an array'
]);
}
答案 0 :(得分:0)
我不知道您从哪里拿走recipient
,因为它不在您显示的请求中。好像您混合了一些变量。
第二,您丢失了json_decode()
,因为您正在发送JSON,因此在接收后需要对其进行解码。
关于您要寻找的功能array_key_exists()
或只是isset()
。
示例:
$test = ['destination' => '12345'];
var_dump(isset($test['destination']));
var_dump(array_key_exists('destination', $test));
答案 1 :(得分:0)
如果使用的是laravel 5.x,则无论使用$request->get('recipient')
还是POST
方法,都将使用GET
获取参数。