【问题标题】:How can I send a POST request in C ++ without using sockets如何在不使用套接字的情况下在 C++ 中发送 POST 请求
【发布时间】:2019-11-11 12:33:30
【问题描述】:

我有发送 POST 请求并获取 json 的 python 代码,我需要用 C++(Windows 10、Visual Studio 2019)重写它。我不明白什么工具可以真正完成我需要的一切而不会使代码复杂化。

将有一个控制台应用程序必须发送请求以发送或接收数据,更准确地说是视频流。 我阅读了有关 Boost.Asio 的信息,但它似乎只适用于套接字,没有它们有什么办法吗?起初我想用它,因为它最有名。看了сurl,但是很久没更新了,还有用吗?

    headers_predict = {
        "Content-type": "application/json;charset=UTF-8",
        "Accept": "application/json",
        "X-Session-ID": session_id
        }
    data_predict = {
      "audio": {
          "data": sound_base64,
          "mime": "audio/pcm16"
          },
      "package_id": ""
      }
    url = 'https://cp.speechpro.com/recognize'
    r = requests.post(url, headers=headers_predict, 
    data=json.dumps(data_predict))
    print('Response: %s' % r.text)

我不想使用套接字,因为我不理解它们。 我需要能够将标头和数据设置为 json。

【问题讨论】:

  • 使用 curl:curl.haxx.se
  • 套接字是IP地址和端口号的组合。现在几乎所有的网络通信都使用套接字。即使使用 python,也可能无法与没有套接字的 Web 服务器进行通信。是的,curl 仍然很重要。
  • “很久没更新了”并不一定代表不好
  • 感谢您的帮助。我知道没有插座是不可能的。我只是不想在设置上出错,所以我不想自己描述它们,而是使用现成的界面。然后会有一个卷曲

标签: c++ python-3.x http post http-post


【解决方案1】:

套接字,没有它们有什么办法吗?

从技术上讲,HTTP 没有指定底层传输协议,它可以与任何类型的流传输一起使用。例如,您可以将请求写入文件。

但是,如果您当前使用 TCP 并且不想更改它,那么您必须使用套接字。如果您使用现有的 HTTP 客户端库,则无需直接与它们交互。

【讨论】:

    猜你喜欢
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    相关资源
    最近更新 更多