我试图从API访问Json数据。在线进行研究但无法找到合适的资源来获取指导。我的文档建议执行以下操作,但我应该使用什么方法来使用PHP提取此数据。这是我到目前为止所做的。
offset
我得到一个"长度要求的HTTP错误411.请求必须分块或具有内容长度。"错误。
我尝试过使用curl_setopt($ ch,CURLOPT_GET,1);但后来它直接转到了网址。
我已经尝试使用GET,仍然会收到错误或端点错误。
https://.../v1/StoreServices.svc/Json/Items/
有什么建议吗?
文档建议将此用于身份验证标头:
<?php
$header = array();
$header[] = 'Content-type: application/json';
$header[] = 'Authorization: Basic '.base64_encode('MY_TOKEN_HERE');
$url = "https://.../v1/StoreServices.svc";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$response = curl_exec($ch);
//echo curl_error($ch);
if ($response === false){
echo "Failed";
throw new Exception(curl_error($ch), curl_errno($ch));
}
print_r($response);
?>
示例通话:
var token = "MY_TOKEN_HERE"; $.ajax ({… beforeSend: function (xhr) { xhr.setRequestHeader("Authorization", "Basic " + btoa(token)); }, …);
答案 0 :(得分:1)
看起来后端要求您发送内容长度标头。为此你需要添加:
$header[] = 'Content-Length: 0';