2014-11-01 57 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