json HTTP POST的表单内容类型?

json HTTP POST的表单内容类型?,json,http,forms,Json,Http,Forms,只是想澄清一下表单内容类型: application/x-www-form-urlencoded:在这里可以发送用url编码的参数 多部分/表单数据: 我需要在帖子中发送一个JSON(我想它的类型是:text/x-JSON)。 所以问题是,multipart/form data是否适合此用途/x-www-form-urlencoded是否更好 另外,是否可以发送url中编码的一些参数和json中的一些数据 multipart/form-data 要将文件上载到服务器时使用。请查看详细信息。我也

只是想澄清一下表单内容类型:

  • application/x-www-form-urlencoded
    :在这里可以发送用url编码的参数

  • 多部分/表单数据

  • 我需要在帖子中发送一个JSON(我想它的类型是:
    text/x-JSON
    )。 所以问题是,
    multipart/form data
    是否适合此用途/x-www-form-urlencoded是否更好

    另外,是否可以发送url中编码的一些参数和json中的一些数据

    multipart/form-data
    

    要将文件上载到服务器时使用。请查看详细信息。

    我也在想同样的事情。基本上,html规范对html和表单数据具有不同的内容类型。Json只有一种内容类型

    根据规范,json数据的POST应该具有以下内容类型:
    应用程序/json

    报告的相关部分

    6.7内容类型(MIME类型)

    内容类型的示例包括“文本/html”、“图像/png”、“图像/gif”、“视频/mpeg”、“文本/css”和 “音频/基本”

    17.13.4表单内容类型

    应用程序/x-www-Form-urlencoded
    这是默认的内容类型。随此内容提交的表格 类型必须按如下方式编码

    报告的相关部分

  • IANA注意事项
    JSON文本的MIME媒体类型为application/JSON

  • 看起来人们已经回答了您问题的第一部分(使用application/json)

    第二部分:在HTTP POST请求中发送查询参数是完全合法的

    例如:

    POST /members?id=1234 HTTP/1.1
    Host: www.example.com
    Content-Type: application/json
    
    {"email":"user@example.com"}
    

    查询参数通常在POST请求中用于引用现有资源。上面的示例将现有成员的电子邮件地址更新为id为1234。

    我读了那篇文章,但它没有说明多部分/表单数据仅用于文件上载。但实际上是这样吗?是的。非常常见的用法是将文件上载到服务器,即使它只是包含在规范中,也可以将内容打包,以便在多格式文档的多个部分中提交。如果您在文章中找到“multipart”一词,您将看到:
    […]此属性的默认值为“application/x-www-form-urlencoded”。值“multipart/form data”应该与输入元素type=“file”结合使用。
    如果发送的只是一个json文档,那么有时只使用
    application/json就更好了,要让标准客户端和服务器使用除
    多部分/表单数据
    应用程序/x-www-form-encoded
    之外的任何东西需要做一些工作,但这样做仍然完全符合标准。示例POST请求是完全合法的,但比它应该支持的更难(因为编写HTTP服务器的人希望HTTP POST始终是
    应用程序/x-www-form-encoded
    多部分/表单数据
    之一,因为让web浏览器使用任何其他内容都需要一些复杂的javascript)@JeremyList-Web服务器不希望http post是这两种内容类型中的一种。这些内容类型指html表单。数据类型将建议内容类型,如上面的application/json。@Matt这是他们应该做的:实际上,大多数服务器只将除html表单数据以外的任何内容视为空。@JeremyList您有类似的示例吗将html表单数据以外的任何内容都视为空的web服务器?我使用的每台web服务器都能正确处理内容类型。Apache httpd和nginx能正确处理此问题。主要的脚本语言都有内置的web服务器,可以正确处理此问题。@HermanJ.radtkeii PHP默认情况下不能正确处理内容类型,因此需要4行php for json,再加上支持的任何其他内容类型至少需要这么多。Httpd和nginx在发布到cgi和fastcgi脚本(以及一些其他脚本类型,但不是全部)时做了正确的事情,但大多数脚本无法正确处理。这是一个答案还是一个问题?