是否需要httpPost.setHeader(“Accept”,“application / json”)和httpPost.setHeader(“Content-type”,“application / json”)?

时间:2017-01-15 18:04:38

标签: java php android json

我正在从我的Android应用程序向服务器发送JSON数据,我在例子中看到人们添加:

httpPost.setHeader("Content-type", "application/json");
httpPost.setHeader("Accept", "application/json");

我试图在没有它的情况下发送JSON,我通常在服务器上使用:

收到JSON
$jsonReceived = file_get_contents("php://input");

标题的用途是什么?

1 个答案:

答案 0 :(得分:1)

这取决于服务器。有些服务器需要这些服务器,因为它们会向服务器提供有关您提供的内容以及您想要的内容的信息。其他服务器可能会忽略这些,只是做出假设。

反正:

Accept标头用于告诉服务器您会对哪种响应感到满意。在这种情况下,您告诉服务器您需要JSON输出,而不是说文本,XML或二进制垃圾。

Content-Type标头用于通知服务器您要发送的内容。在这种情况下,您告诉服务器您正在发送JSON数据,而不是其他内容。

这些标题适用于支持不同格式的服务器,如XML,二进制文本,文本,图像等等。

客户端的良好实现始终提供这些标头,优秀的服务器将拒绝任何他们不理解的内容(包括没有标头的情况)。

如果您仍不清楚,请阅读HTTP规范。