我正在使用Xojo向Twilio发送一个简短的SSL命令。
在Mac上,cURL是内置的,因此执行shell命令很简单。
由于cURL未安装在Windows上,是否有一个版本的cURL可以在所有Windows版本上运行(或者我的应用程序安装程序,Inno需要确定Windows操作系统是否正在运行并安装该特定版本)?
非常感谢任何关于需要包含哪些文件的建议。
安装后,Windows机器上的cURL命令与Mac有何不同?
感谢。
答案 0 :(得分:0)
经过一段时间的搜索,我终于找到了解决方案。
如果下载安装程序文件(扩展名为.msi),则会创建一个C:\ Program Files \ curl目录并将文件解压缩到该目录。您可以将文件放在您选择的任何目录中,只要您正确引用它。
在Xojo中,您创建一个类似于此处代码的shell命令:
Dim sh As New Shell
Dim命令As String
command =""" C:\ Program Files \ curl \ bin \ curl"" -X POST https://myurl.com"
sh.Execute(命令)
请注意,C:\ Program Files \ curl \ bin \ curl在双引号内。这是因为" Program Files"中有一个空格。如果不将地址放在双引号内,则空格后面的所有内容都被视为参数,并会生成错误。
重要说明:Windows无法识别单引号,因此所有单引号都需要替换为双引号。
此外,在Mac OS上," - "角色需要用反斜杠转义" - "。将cURL命令从Mac转换为Windows时,需要删除这些反斜杠。
答案 1 :(得分:0)
您不应该需要cURL来发送POST。看一下HTTPsocket对象的POST方法。
来自官方Xojo文档:
此示例对服务执行同步POST,该服务以JSON:
的形式返回您向其发布的内容Dim d As New Dictionary
d.Value("Test") = "TestValue"
d.Value("Value2") = "Testing"
Socket.SetFormData(d)
// This service simply returns the post data as the result
Dim result As String
result = Socket.Post("http://httpbin.org/post", 30) // Synchronous
result = DefineEncoding(result, Encodings.UTF8)
MsgBox(result)
要执行此异步操作,请在没有超时的情况下调用Post:
Dim d As New Dictionary
d.Value("Test") = "TestValue"
d.Value("Value2") = "Testing"
Socket.SetFormData(d)
// This service simply returns the post data as the result
Socket.Post("http://httpbin.org/post")
结果将在content参数中的PageReceived事件处理程序中提供。
Sub PageReceived(url As String, httpStatus As Integer, headers As InternetHeaders, content As String)
Dim data As String
data = DefineEncoding(content, Encodings.UTF8)
ResultArea.Text = data
End Sub