Sample code for 30+ languages & platforms
PowerBuilder

SMSAPI - Send SMS with Multiple Lines of Text

See more SMSAPI Examples

Send an SMS message containing multiple lines of text.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Http
string ls_MessageContent
oleobject loo_SbMessage
oleobject loo_SbResponseBody

li_Success = 0

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

loo_Http = create oleobject
li_rc = loo_Http.ConnectToNewObject("Chilkat.Http")
if li_rc < 0 then
    destroy loo_Http
    MessageBox("Error","Connecting to COM object failed")
    return
end if

// Implements the following CURL command:

// curl -H "Authorization: Bearer token_api_oauth" \
// "https://api.smsapi.com/sms.do?from=sender_name&to=44123456789&message=message_content&format=json"

// Use the following online tool to generate HTTP code from a CURL command
// Convert a cURL Command to HTTP Source Code

// Adds the "Authorization: Bearer token_api_oauth" header.
loo_Http.AuthToken = "token_api_oauth"

ls_MessageContent = "Hello~r~nThis is a test~r~nwith multiple lines of text."

// Given that our message contentn has newlines, we obviously cannot put newlines in a URL without them being URL encoded..
// Therefore.. URL encode..
loo_SbMessage = create oleobject
li_rc = loo_SbMessage.ConnectToNewObject("Chilkat.StringBuilder")

loo_SbMessage.Append(ls_MessageContent)
loo_SbMessage.Encode("url","utf-8")

loo_Http.SetUrlVar("msgContent",loo_SbMessage.GetAsString())

loo_SbResponseBody = create oleobject
li_rc = loo_SbResponseBody.ConnectToNewObject("Chilkat.StringBuilder")

li_Success = loo_Http.QuickGetSb("https://api.smsapi.com/sms.do?from=sender_name&to=44123456789&message={$msgContent}&format=json",loo_SbResponseBody)
if li_Success = 0 then
    Write-Debug loo_Http.LastErrorText
    destroy loo_Http
    destroy loo_SbMessage
    destroy loo_SbResponseBody
    return
end if

Write-Debug "Response body:"
Write-Debug loo_SbResponseBody.GetAsString()


destroy loo_Http
destroy loo_SbMessage
destroy loo_SbResponseBody