使用Xojo在Windows上运行cURL

时间:2014-11-01 18:49:56

标签: windows curl

我正在使用Xojo向Twilio发送一个简短的SSL命令。

在Mac上,cURL是内置的,因此执行shell命令很简单。

由于cURL未安装在Windows上,是否有一个版本的cURL可以在所有Windows版本上运行(或者我的应用程序安装程序,Inno需要确定Windows操作系统是否正在运行并安装该特定版本)?

非常感谢任何关于需要包含哪些文件的建议。

安装后,Windows机器上的cURL命令与Mac有何不同?

感谢。

2 个答案:

答案 0 :(得分:0)

经过一段时间的搜索,我终于找到了解决方案。

  1. 安装cURL - 使用SSL从here下载。
  2. 如果下载安装程序文件(扩展名为.msi),则会创建一个C:\ Program Files \ curl目录并将文件解压缩到该目录。您可以将文件放在您选择的任何目录中,只要您正确引用它。

    1. 在Xojo中,您创建一个类似于此处代码的shell命令:

      Dim sh As New Shell

      Dim命令As String

      command =""" C:\ Program Files \ curl \ bin \ curl"" -X POST https://myurl.com"

      sh.Execute(命令)

    2. 请注意,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