【问题标题】:Sending an HTTPS request using C on Mac OS X在 Mac OS X 上使用 C 发送 HTTPS 请求
【发布时间】:2011-10-20 20:00:32
【问题描述】:

thisthis 等问题向您展示了如何使用 Cocoa 和 Objective-c 发送 HTTP POST 请求。

有没有办法在 C 中使用该代码?此外,如何在 Mac OS X 上使用 C 发送 HTTPS (SSL) POST 请求?

感谢您的帮助

编辑:

如果您不喜欢我提出这个问题的事实,请远离,不要投反对票。你可能不需要这个,但我需要,这就是我问的原因。就像我不会对对我来说毫无意义的问题投反对票一样,请不要对对你不重要的问题投反对票。谢谢。

【问题讨论】:

  • 看看 libcurl。它是一个 C 库,是任何现有 OS X 安装的一部分。
  • 谢谢,我不想再向我的项目添加另一个依赖项,除非它只是一个简单的添加标题。例子?我的意思是,必须弄清楚如何在这样的库上调用函数是一件相当麻烦的事情,如果您有示例代码或者可以将我指向一个包含简洁示例的站点,我将不胜感激
  • 您需要 #import <curl/curl.h> 并将 libcurl.dylib 添加到链接框架和库的列表中。在 Web 上有几个使用 libcurl 的示例,但我不确定 libcurl 如何处理用于证书的 OS X 钥匙串和用于 SSL 的私钥。也许其他人对此了解更多并发布了答案。
  • 这就是我添加另一个依赖项的意思,除此之外看看他们的examples 这是不可能的。
  • this 一个。我迷失了试图理解他们的手册页。任何人都有如何使用 libcurl 设置 HTTPS POST 的示例?有人吗?

标签: c macos


【解决方案1】:

Core Foundation 是 C,并且包含非常好的 HTTP 支持:

Communicating with HTTP Servers

sn-p 用于 GET,但 POST 受支持且简单明了。这是一个使用 POST 的 sn-p。 Core Foundation 完全支持 64 位 iOS,一个必不可少的 Mac OS 和 iOS API。

An answer to a JSON question

【讨论】:

  • 谢谢。我在哪里设置帖子的有效负载?我找不到任何关于它的信息
  • 这在 JSON 答案 sn-p 中。有效负载是主体,使用 CFHTTPMessageSetBody() 设置。您必须建立一串键和值才能放入其中。另一个例子,见mactech.com/articles/mactech/Vol.19/19.03/HTTPMessages/…
【解决方案2】:

使用 C,您可以使用 http://www.columbia.edu/kermit/ck90.html#source - 它带有适用于 OSX 10.3 及更高版本的 make 文件,并包含 SSL 等...另一个选项是 http://curl.haxx.se/libcurl/c/

如果你可以使用 Objective-C,你可以使用 http://allseeing-i.com/ASIHTTPRequest/http://www.chilkatsoft.com/http-objc.asp 来做到这一点

【讨论】:

  • 他要求C方式,不是objective-c
  • 那么,您希望我唯一的选择是下载第 3 方库吗?我以前使用过 C 中的可可 API。我确定我也可以使用这些,但我还没有找到方法。
  • 我什么都不想要...只是为您的问题提供了一些帮助...因为我不使用 Cocoa 我无法帮助您提供样品...也许其他人可以...
  • 谢谢。但我更喜欢通过 C 使用 Cocoa。
  • @MrAleph 请记住,Cocoa 导出了一个 Objective-C API。尝试使用运行时 API 在 Objective-C 中进行编程时,您只能使用 C 来做一些 Cocoa。
猜你喜欢
  • 2011-05-13
  • 1970-01-01
  • 1970-01-01
  • 2012-07-11
  • 2014-12-14
  • 1970-01-01
  • 2012-02-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多