我正在从 Android 应用程序向服务器发送 JSON 数据,我在人们添加的示例中看到:
httpPost.setHeader("Content-type", "application/json");
httpPost.setHeader("Accept", "application/json");
我尝试在没有它的情况下发送 JSON,并且我使用以下方法在服务器上正常接收 JSON:
$jsonReceived = file_get_contents("php://input");
标题有什么用?
最佳答案
这取决于服务器。有些服务器需要这些,因为它们向服务器提供有关您所提供的内容以及您想要返回的内容的信息。其他服务器可能会忽略这些并只是做出假设。
无论如何:
Accept
header 用于告诉服务器您对哪种类型的响应感到满意。在这种情况下,您告诉服务器您想要 JSON 输出,而不是文本、XML 或二进制垃圾。
Content-Type
header 用于通知服务器您要发送的内容。在本例中,您告诉服务器您正在发送 JSON 数据,而不是其他数据。
这些 header 适用于支持不同格式的服务器,例如 XML、二进制、文本、图像等。
客户端的良好实现总是提供这些 header ,而良好的服务器将拒绝任何它们不理解的内容(包括没有 header 的情况)。
如果您还不清楚,请阅读 HTTP 规范。
关于java - 是否需要 httpPost.setHeader ("Accept"、 "application/json")和 httpPost.setHeader ("Content-type"、 "application/json")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41664461/