我正在尝试以下方法:
$get_string = '?latitude='.$lat.'&longitude='.$lng.'&type='.$tsp;
$headers = array();
//$headers[] = "x-auth-token: myToken";
$headers['x-auth-token'] = "myToken";
$state_ch = curl_init();
curl_setopt($state_ch, CURLOPT_URL,'myUrl'.$get_string);
curl_setopt($state_ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($state_ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($state_ch, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($state_ch, CURLOPT_POSTFIELDS, $get_string);
$state_result = curl_exec($state_ch);
//$state_result = json_decode($state_result);
echo "<pre>"; print_r($state_result);
但我明白了:
<pre>{"data":{"status":"failed","message":"Token is required"}}
我想念的是什么人?
答案 0 :(得分:1)
希望以下内容可以帮助您确定您的请求发生了什么 - 使用显示的输出来帮助调试请求,更改相关
配置中的参数。一件事 - 是端点https
还是常规http
?
/* config */
$url='http://www.example.com';
$token='banana';
$params=array(
'latitude' => $lat,
'longitude' => $lng,
'type' => $tsp
);
$headers = array(
sprintf('X-AUTH-TOKEN: %s', $token )
);
/* prepare url */
$url=sprintf( '%s?%s', $url, http_build_query( $params ) );
/* stream for advanced debug info */
$vbh = fopen('php://temp', 'w+');
$curl = curl_init( $url );
curl_setopt( $curl, CURLOPT_HTTPHEADER, $headers );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
/* enhanced debug info */
curl_setopt( $curl,CURLOPT_VERBOSE,true );
curl_setopt( $curl,CURLOPT_NOPROGRESS,true );
curl_setopt( $curl,CURLOPT_STDERR,$vbh );
/* results */
$res=(object)array(
'response' => curl_exec( $curl ),
'info' => (object)curl_getinfo( $curl ),
'errors' => curl_error( $curl )
);
rewind( $vbh );
$res->verbose=stream_get_contents( $vbh );
fclose( $vbh );
curl_close( $curl );
printf( '<pre>%s</pre>', print_r( $res->verbose, true ) );
printf( '<pre>%s</pre>', print_r( $res->info, true ) );
答案 1 :(得分:0)
curl_setopt期望headers数组每个标头有一个条目,例如
$headers = array(
'X-Auth-Token: myToken'
);
由于您正在为标题使用关联数组,因此可能只有字符串&#34; myToken&#34;正在发送。