偶尔我会查询服务器的JSON并在请求的数据不可用时收到404 HTML页面。如何使用simplejson验证JSON
因此,我必须检查以确保我期待的JSON实际上是json而不是HTML。我现在通过检查一个字符串来实现这一点,我期望在HTML中包含在响应中,但我认为必须有更好的方法来做到这一点。
偶尔我会查询服务器的JSON并在请求的数据不可用时收到404 HTML页面。如何使用simplejson验证JSON
因此,我必须检查以确保我期待的JSON实际上是json而不是HTML。我现在通过检查一个字符串来实现这一点,我期望在HTML中包含在响应中,但我认为必须有更好的方法来做到这一点。
你应该能够告诉你收到了404,因为响应代码不是200那就是:
import urllib
resp = urllib.urlopen('http://example.com/')
if resp.getcode() == 200:
rejoice()
if resp.getcode() == 404:
sulk()
检查404是明确的,仅供说明。实际上,你应该检查响应> = 400,因为任何这样的值代表一个错误条件,除非你知道如何真正解决特定的错误,它们应该传播给调用者。 – SingleNegationElimination 2011-05-15 22:36:48
找到第一个非空白字符。如果它是“<”,那么你有HTML。
此外,请检查内容类型标头和HTTP状态代码。
+1内容类型标头 – 2011-05-15 22:15:54
,你能否告诉我们,真实查询码? – 2011-05-15 22:12:26
我很困惑。这听起来像你想在浏览器中验证,但simplejson是你会用来在服务器上验证的东西。你想达到什么目的? – mikerobi 2011-05-15 22:16:01