我正在尝试从 API 获取一些数据,目前我正在以 XML 形式将其返回。
我更喜欢它作为 jSON,并且 API 文档说它可以在 jSON 以及 XML 中使用。
文档说...
API目前支持两种类型的响应格式:XML和JSON
您可以使用请求中的 HTTP Accept 标头指定所需的格式:
接受:应用程序/xml 接受:application/json
那么如何在 PHP 代码中生成 applixation/json 的 Accept 标头?
我目前的 PHP 代码是:
header('Content-Type: application/json');
$endpoint = "http://api.api.com";
// Initiate curl
$ch = curl_init();
// Set The Response Format to Json
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json'));
// Disable SSL verification
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// Will return the response, if false it print the response
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Set the url
curl_setopt($ch, CURLOPT_URL,$endpoint);
// Execute
$result=curl_exec($ch);
// Closing
curl_close($ch);
echo $result;
结果的回显只是返回XML格式的数据。
提前致谢。
您应该修改在请求中设置 HTTP 标头的代码。您没有指定
Accept
标题
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
这应该将 HTTP 请求发送到 API 的 URL,其中包含您希望以特定格式获取响应的信息。
编辑(以防这对某人有用):
Accept
标头是请求标头,它指定响应正文的可接受类型Content-Type
标头既是请求头又是响应标头,它指定请求/响应正文的格式HTTP 请求的示例可能如下所示(通常,请求仅包含标头部分):
GET /index.html HTTP/1.1
Host: www.example.com
Accept: application/json
响应可能看起来像这样:
HTTP/1.1 200 OK
Date: Mon, 23 May 2005 22:38:34 GMT
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
Content-Type: application/json; charset=UTF-8
Content-Length: 24
{
"hello": "world"
}
header('内容类型:application/json');
$端点=“http://api.api.com”;
// 启动卷曲 $ch =curl_init();
// 设置响应格式为Json curl_setopt($ch, CURLOPT_HTTPHEADER, array( '内容类型:application/json'));
// 禁用 SSL 验证 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// 将返回响应,如果为 false 则打印响应 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//设置url curl_setopt($ch, CURLOPT_URL,$endpoint);
//执行 $结果=curl_exec($ch);
// 结束 curl_close($ch);
回显$结果; El Eco del resultado simplemente devuelve