百度知道开放平台/响应数据包规范
来自站长百科
响应数据包的格式由调用时传递的format参数指定(默认为xml格式),无论是xml格式还是json格式,输出内容都是UTF-8格式。目前,百度知道频道目前支持xml、json格式。
XML输出格式[ ]
- 文档编码格式UTF-8
- 接口的返回数据中,数组对应的xml节点包含list=”true”属性,其子节点的标签名跟对应的数据有联系,并且同个数组内的同级节点的标签名一致。例如表示问题标题列表对应的xml输出可能为:
<questionList list="true"> <title><![CDATA[北京一共有几个区?]]></title> <title><![CDATA[百度大厦的地址是什么?]]></title> </questionList>
- 接口的返回数据中,对象类型和普通数据类型数据(string,int,double,bool)对应的xml节点不包含list属性或者list属性值为false,节点标签名具有实际意义,与数据所描述的信息相符。例如,表示问题的数据对应的xml输出为:
<question list=”false”> <title><![CDATA[百度大厦的地址是什么?]]></title> <url><![CDATA[http://zhidao.xxx.com/question/b231e997ade585b3e99481e59bbd7a62310200]]</url> <content><![CDATA[如题,百度大厦地址在]]</ content > </question>
json输出格式[ ]
API调用时如果传递format参数为json(大小写不敏感),则正常响应包符合如下规范的json字符串:
- http响应头中的Content-Type指定为application/json, charset=utf-8
- 字符串编码格式是UTF-8
字符串内容是XML输出数据所对应的PHP数组的标准JSON字符串
错误响应输出格式[ ]
错误响应输出内容符合以下规范:
- 返回内容由error_code, error_msg, request_args这3个属性组成,分别用于描述错误码,错误信息,以及调用Open API时所传递的所有参数的信息。
- request_args属性是一个数组,由n个包含key和value属性的对象组成
例如,假设第三方应用调用baidu.zhidao.getQuestionList接口时传递的参数api_key无效,则其对应的xml格式的错误响应包为如下格式:
<?xml version="1.0" encoding="UTF-8"?> <baidu_zhidao_getQuestionList_response> <error_code>101</error_code> <error_msg>Invalid API key</error_msg> <request_args list="true"> <arg> <key><![CDATA[cid]]></key> <value><![CDATA[249]]></value> </arg> <arg> <key><![CDATA[method]]></key> <value><![CDATA[baidu.zhidao.getQuestionLis]]></value> </arg> </request_args> </ baidu_zhidao_getQuestionList_response >
Json格式的字符串内容是XML输出数据所对应的PHP数组的标准JSON字符串