【问题标题】:http POST method for web serverWeb 服务器的 http POST 方法
【发布时间】:2013-09-10 23:17:22
【问题描述】:

我正在研究创建网页的 HTTP POST 方法。 我对它有点陌生,正在寻找有关其工作原理的一些解释。

我只是想使用他们看似简单的页面来满足我自己的服务器需求。 我的问题是,这个 curl 链接如何真正起作用?

curl --data-binary @audio2.flac --header 'Content-type: audio/x-flac; rate=16000' 'https://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&pfilter=0&maxresults=1&lang="en-US"'

所以我通过使用 curl 来让它工作,如你所见,发送一个 flac 文件,它会响应 这个 JSON 的东西

{"status":0,"id":"3b7853241a0dded048f84744cc1ab896-1","hypotheses":[{"utterance":"ice cream","confidence":0.88215643}]}

如果我错了,请纠正我: 所以我相信这是一个 post 方法,因为它有 ?用它标记以发送名称值对。
我不知道他们是如何获得链接https://www.google.com/speech-api/v1/recognize 只接受 POST 请求,最后没有这样的脚本名称

https://www.google.com/speech-api/v1/recognize/scriptName.pl

如何在没有 .pl 或 .py 扩展名的情况下编写内容以在给定页面上接受发布请求?我怎样才能把它放在服务器上的某个目录中。

除了我的目的之外,我还可以在处理/压缩后将文件发回给他们吗? 关于如何做到这一点的任何想法?

非常感谢您的宝贵时间和慷慨的帮助!

【问题讨论】:

  • 参数通过 ? URI 中的 & 被当作 GET 处理
  • 我是这么想的。这是我在 curl 的手册页中找到的。 --data-binary (HTTP) 这完全按照指定的方式发布数据,没有任何额外的处理。如果您以字母 @ 开始数据,则其余部分应为文件名。数据的发布方式与 --data-ascii 类似,不同之处在于保留了换行符并且从不进行转换。
  • 这也是得到的回应。 cam@Firetree:~$ curl google.com/speech-api/v1/recognize 此 URL 不支持 HTTP 方法 GET

    此 URL 不支持 HTTP 方法 GET

    错误 405

标签: post file-upload curl http-headers http-post


【解决方案1】:

似乎如果您使用 --data/--data-binary/--form 请求已发布。

我首先完全误解了你的问题,虽然你想知道如何使用这个界面,但你得到了那个工作。

服务器端可以通过多种方式实现,完全取决于使用的基础架构和软件。

以 Webserver apache 为例,您可以使用 RewriteHtAccess 文件中的内容来混淆/更改请求的文件。所以查看扩展名(或没有扩展名)是没有帮助的。

另请参阅此处提到的各种选项

Running PHP without extension without using mod_rewrite?

ForceType/htaccess file extension question - extensionless files?

看看你如何实现同样的目标。

然后,仅接受 POST 数据再次取决于您在服务器端使用的编程/脚本技术,例如 PHP。区分多个superglobals,如$_GET$_POST

【讨论】:

    猜你喜欢
    • 2014-12-07
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多