我从我的C ++应用程序发送HTTP POST request
到服务器上的PHP脚本。使用HttpOpenRequest/HttpSendRequest/etc
。目前,它等待PHP脚本在HttpSendRequest
返回之前完成执行。反正有没有改变这个功能?
我在我的C ++应用程序关闭之前发送数据,所以我不希望它在那里等待10秒以上等待PHP脚本完成执行。我只是希望它发送数据,然后关闭应用程序。
我想到的一件事是让PHP脚本使用exec命令在另一个进程中生成另一个PHP脚本,因此第一个脚本将立即返回。但是,我正在使用HTTP POST请求发送大量数据,因此需要将此数据传递给生成的进程。
理想情况下,我只想设置一个标志来告诉HttpSendRequest
不要等待。我在文档中看不到任何明显的东西,但可能错过了一些东西。
答案 0 :(得分:3)
您可以使用InternetOpen
致电INTERNET_FLAG_ASYNC
,并让您的回调不会产生任何后果。
以下是一些示例代码,可帮助您入门:
http://www.codeproject.com/KB/IP/asyncwininet.aspx
然后(如rik建议的那样),在PHP脚本的顶部调用ignore_user_abort(true);
以确保它完全执行。
答案 1 :(得分:2)
您可能希望在PHP脚本中使用ignore_user_abort()
。然后,您可以在发送数据后关闭C客户端的连接,PHP将继续执行它应该执行的任何操作。