2014-11-01 59 views
0

我正在使用Xojo向Twilio发送一个简短的SSL命令。使用Xojo在Windows上运行cURL

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

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

任何关于需要包含哪些文件的建议将不胜感激。

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

谢谢。

回答

0

经过一段时间的搜索,我终于想出了一个解决方案。

  1. 安装cURL - 从here使用SSL下载。

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

  • 在Xojo,创建类似于这里的代码外壳命令:

    昏暗SH作为新的外壳

    昏暗命令作为字符串

    命令= “” “C:\ Program Files文件\卷曲\ BIN \卷曲” “-X POST https://myurl.com

    sh.Execute(命令)

  • 请注意,C:\ Program Files \ curl \ bin \ curl位于双引号内。这是因为“Program Files”中有一个空格。如果您不将地址放在双引号内,则空格后面的所有内容都将被视为参数,并会生成错误。

    重要说明:Windows无法识别单引号,因此所有单引号都需要用双引号替换。

    另外,在Mac OS上,“ - ”字符需要用反斜线“ - ”转义。将cURL命令从Mac转换到Windows时,需要删除这些反斜杠。

    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) 
    

    为此异步,来电来邮无超时:

    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") 
    

    结果将在内容参数的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