压缩的JSON内容类型

时间:2015-12-04 19:22:15

标签: json http

我正在集成第三方API,并且只需将JSON数据发布到我们的服务器中。

他们发送的内容类型是application/json,但有效负载实际上是gzip,这有效吗?我认为它应该是gzip/json内容类型。

更新1

env["RAW_POST_DATA"]包含二进制数据,而不是我期望的文本格式的JSON。

更新2

这是一个相当标准的Rails应用程序,使用Puma托管在heroku上进行分段和制作。

更新3

我以前没有在heroku上调试此级别,所以我可能会遗漏某些内容,但我没有看到内容编码标题 (我确实错过了"HTTP_CONTENT_ENCODING"=>"gzip"标题)。我得到的标题是:

2015-12-04T08:00:08.001620+00:00 app[web.1]: D, [2015-12-04T08:00:08.001590 #7] DEBUG -- : REQUEST_PATH: /
2015-12-04T08:00:08.001660+00:00 app[web.1]: D, [2015-12-04T08:00:08.001620 #7] DEBUG -- : REQUEST_URI: /
2015-12-04T08:00:08.001701+00:00 app[web.1]: D, [2015-12-04T08:00:08.001656 #7] DEBUG -- : HTTP_VERSION: HTTP/1.1
2015-12-04T08:00:08.001735+00:00 app[web.1]: D, [2015-12-04T08:00:08.001698 #7] DEBUG -- : HTTP_HOST: staging.redacted.com
2015-12-04T08:00:08.001768+00:00 app[web.1]: D, [2015-12-04T08:00:08.001732 #7] DEBUG -- : HTTP_CONNECTION: close
2015-12-04T08:00:08.001801+00:00 app[web.1]: D, [2015-12-04T08:00:08.001765 #7] DEBUG -- : HTTP_ACCEPT:
2015-12-04T08:00:08.001823+00:00 app[web.1]: D, [2015-12-04T08:00:08.001798 #7] DEBUG -- : CONTENT_LENGTH: 277
2015-12-04T08:00:08.001861+00:00 app[web.1]: D, [2015-12-04T08:00:08.001826 #7] DEBUG -- : CONTENT_TYPE: application/json
2015-12-04T08:00:08.001918+00:00 app[web.1]: D, [2015-12-04T08:00:08.001858 #7] DEBUG -- : HTTP_CACHE_CONTROL:
2015-12-04T08:00:08.001920+00:00 app[web.1]: D, [2015-12-04T08:00:08.001891 #7] DEBUG -- : HTTP_ORIGIN:
2015-12-04T08:00:08.001958+00:00 app[web.1]: D, [2015-12-04T08:00:08.001921 #7] DEBUG -- : HTTP_USER_AGENT: Apache-HttpClient/4.3.4 (java 1.5)
2015-12-04T08:00:08.001996+00:00 app[web.1]: D, [2015-12-04T08:00:08.001953 #7] DEBUG -- : HTTP_POSTMAN_TOKEN:
2015-12-04T08:00:08.002029+00:00 app[web.1]: D, [2015-12-04T08:00:08.001992 #7] DEBUG -- : HTTP_DNT:
2015-12-04T08:00:08.001801+00:00 app[web.1]: D, [2015-12-04T08:00:08.001765 #7] DEBUG -- : HTTP_CONTENT_ENCODING: gzip
2015-12-04T08:00:08.002074+00:00 app[web.1]: D, [2015-12-04T08:00:08.002027 #7] DEBUG -- : HTTP_ACCEPT_ENCODING: gzip,deflate
2015-12-04T08:00:08.002093+00:00 app[web.1]: D, [2015-12-04T08:00:08.002061 #7] DEBUG -- : HTTP_ACCEPT_LANGUAGE:
2015-12-04T08:00:08.002137+00:00 app[web.1]: D, [2015-12-04T08:00:08.002094 #7] DEBUG -- : HTTP_COOKIE:

原始帖子数据打印为:

2015-12-04T08:00:08.002165+00:00 app[web.1]: D, [2015-12-04T08:00:08.002128 #7] DEBUG -- : RAW_POST_DATA:
2015-12-04T08:00:08.002166+00:00 app[web.1]:
2015-12-04T08:00:08.002168+00:00 app[web.1]: ���_%���R�@�S%@�4ݶ��n���wg�4$Wz��9�/me�J���pоp     Eٍ��!B�,N��@��k4g�
2015-12-04T08:00:08.002169+00:00 app[web.1]: -���*c�8�[�PK&DفR���LM�
2015-12-04T08:00:08.002169+00:00 app[web.1]: k=t@:?"'��Ip|�dpg��縼Ѻ|�u�cBC��Hly��*�ǯ'Meq�W�]N͛C�F

1 个答案:

答案 0 :(得分:1)

因此请求正文被gzip压缩,请求带有" Content-Encoding:gzip"。这里没有惊喜。请参阅RFC 7231 Section 3.1.2 Encoding for Compression or Integrity