我正在编写API并且已经从各种来源阅读教程等。对于回复,我有点困惑。我编写了一个类,它将发回HTTP头响应以及XML响应。这是正确的还是我应该使用其中一个而不是两个?另外如何检查我发送的HTTP头响应是否正确?我正在使用PHP。
我使用以下工具检查HTTP响应: http://www.seoconsultants.com/tools/check-server-headers-tool/ 表示响应是HTTP / 1.1 200 OK。但是在我的脚本中我将它设置为: 标题(HTTP / 1.1 401未经授权); 因此哪个是正确的?我该如何正确检查?出了什么问题?
非常感谢您的帮助。
答案 0 :(得分:2)
Redbot http://redbot.org/将对您的HTTP响应进行非常全面的分析,以确保您符合HTTP规范。
建议您阅读有关HTTP协议的一些介绍性材料。它会让你的生活更轻松。
答案 1 :(得分:1)
在一个宁静的服务中,你使用http方法get,put,post和delete,所以http标题就在那里"包含"。这种方法调用的有效负载可以按您喜欢的方式进行格式化(它必须是现有的mimetype!),因此xml也是可能的!你必须在响应"元数据和#34;之间划分。和响应有效载荷:"元数据"是一个http标头,有效负载是你的xml字符串,所以你必须发送两个!否则,您将发送一个空响应: - )
在您的请求中,您必须定义应该将哪个数据表示(在您的情况下为xml)用于响应。看看这个image(左边的一个是宁静的)。
但是,使用框架是一个好主意,就像其他答案一样。
答案 2 :(得分:0)
你是从头开始写这个吗?如果您使用通用或流行的框架作为基础,并专注于构建您的API方法并让框架处理交付机制
http://inchoo.net/tools-frameworks/symfony2-rest/您可以谷歌搜索更多样本
答案 3 :(得分:0)
HTTP标头可以是您喜欢的任何一种 - 让客户端处理它们。客户可以使用它们来查明操作(请求)是否成功完成,服务是否可用以及其他常见的有用内容。如果标题是由协议预定义并包含有效数据或它们是由您定义的(无需验证),则标题是正确的。
XML,JSON或任何其他响应是您要告诉客户端的数据。它可能包含有关错误的详细信息,执行操作的结果等。
答案 4 :(得分:-1)
我不建议你弄乱HTTP标头响应。保持始终设置为200 OK,并在XML响应中发回所需的信息。
这样,客户端只需要担心XML响应。如果出现HTTP错误,例如403 Forbidden,则意味着这是在系统级别(服务器配置)而不是在应用程序层本身。