求助
请看代码莫限行api 接口
$outArr = array(
'code'=> 1,
'msg' => '',
'data'=> array(),
);
// 云市场分配的密钥Id
$secretId = '';
// 云市场分配的密钥Key
$secretKey = '';
$source = 'market';
// 签名
$datetime = gmdate('D, d M Y H:i:s T');
$signStr = sprintf("x-date: %s\nx-source: %s", $datetime, $source);
$sign = base64_encode(hash_hmac('sha1', $signStr, $secretKey, true));
$auth = sprintf('hmac id="%s", algorithm="hmac-sha1", headers="x-date x-source", signature="%s"', $secretId, $sign);
// 请求方法
$method = 'POST';
// 请求头
$headers = array(
'X-Source' => $source,
'X-Date' => $datetime,
'Authorization' => $auth,
);
// 查询参数
$queryParams = array (
'code'=> 1,
'msg' => '',
'data'=> array(),
);
// body参数(POST方法下)
$bodyParams = array (
'city' => 'tianjin',
'date' => '2023',
);
// url参数拼接
$url = 'https://service-ar51wab0-1305308687.gz.apigw.tencentcs.com/release/vehicle/limit/query';
if (count($queryParams) > 0) {
$url .= '?' . http_build_query($queryParams);
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($ch, CURLOPT_HTTPHEADER, array_map(function ($v, $k) {
return $k . ': ' . $v;
}, array_values($headers), array_keys($headers)));
if (in_array($method, array('POST', 'PUT', 'PATCH'), true)) {
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($bodyParams));
}
$data = curl_exec($ch);
$outArr['data'] = $data;
echo tom_json_encode($outArr);exit;
为什么不是条状的?转json就不行啊 不转 小程序又不能提取到
根据你提供的代码,我看到你有将响应数据转换为 JSON 格式的代码:`echo tom_json_encode($outArr);`,但是你的 `$outArr` 变量的值却是通过 CURL 请求获取的。根据你的代码逻辑,`$outArr` 应该是一个字符串,而不是一个数组。
要解决问题,你可以将 `$outArr` 改为一个数组,并在 CURL 请求后将响应数据解析为数组格式。修改代码如下:
$data = curl_exec($ch);
$outArr = json_decode($data, true);
echo json_encode($outArr);
exit;
这样,你就能够正确地将响应数据转换为 JSON 并输出给小程序了。
-- 来源:OpenAI ****GPT $outArr 改成什么数组 前端怎么调用呢
页:
[1]