是一个请求响应,总是JSON



我试图理解当我使用请求模块发出POST请求时我到底得到了什么-它总是JSON吗?似乎我得到的每个响应似乎都是JSON,但我不确定。

其中r是我的响应对象,当我做:

print r.apparent_encoding

它似乎总是返回ascii

当我尝试type()时:

>>>print type(r)
<class 'requests.models.Response'

我将print r.text的输出粘贴到JSON验证器中,它没有报告任何错误。所以我应该假设请求在这里提供JSON对象吗?

响应可以是任何内容。如果您发送到REST端点,它通常会以JSON响应。如果是,requests将检测到,并允许您通过.json()方法解码它。

但是你完全有可能发送到一个正常的web URL,实际上假装是一个浏览器,除非服务器做了一些非常聪明的事情,它只会响应标准的HTML,它会提供给浏览器。在这种情况下,执行response.json()将引发ValueError。

, POST请求的响应文本完全取决于web服务。一个好的REST API总是会响应JSON,但你并不总是能得到。

PHP中常用的模式是
<?php
$successful_whatever = false;
if (isset($_POST['whatever'])) {
    # put $_POST['whatever'] in a database
    $successful_whatever = true;
}
echo $twig->render('gallery.twig',
                   array('successful_whatever' => $successful_whatever));
?>
如您所见,响应文本将是一个呈现的模板(HTML)。我不是说它好,只是说它很常见。

相关内容

  • 没有找到相关文章

最新更新