OK, I showed my ignorance on multipart/form-data (in addition to not knowing pushover). Here's an idea, based on reading some more of the pushover docs as well as a Hubitat forum post. FYI @ilkeraktuna
def postBody = """----abcdefg
Content-Disposition: form-data; name="user"
$userKey
----abcdefg
Content-Disposition: form-data; name="token"
$apiKey
----abcdefg
Content-Disposition: form-data; name="message"
Pushing an image attachment
----abcdefg
Content-Disposition: form-data; name="attachment"; filename="your_image.jpg"
Content-Type: image/jpeg
$encodedImage
----abcdefg--"""
// Prepare the package to be sent
def params = [
uri: "https://api.pushover.net/1/messages.json",
contentType: "multipart/form-data; boundary=--abcdefg",
body: postBody
]
httpPost(params){response ->
if(response.status != 200) {
log.error "Received HTTP error ${response.status}. Check your keys!"
}
else {
log.debug "Message Received by Pushover Server"
}
}