Imports System.IO Imports System.Net Imports System.Security.Cryptography Imports System.Text Imports System.Web Module Download Private Const ACCESS_KEY_ID As String = "xxxxxxxxxxxxxxxxxxxx" Private Const SECRET_ACCESS_KEY As String = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" REM Downloads the next document from PDF Alchemy. REM Returns the documentId on success, or empty string on failure. Function DownloadNext() REM Generate the HMAC-SHA1 signature. Dim timestamp As String = DateTime.UtcNow.ToString("r") Dim request As String = "/" & ACCESS_KEY_ID & "/outqueue/next" Dim clearText As String = "GET" & vbLf & ACCESS_KEY_ID & vbLf & timestamp & vbLf & request Dim hmac As HMACSHA1 = New HMACSHA1(ASCIIEncoding.UTF8.GetBytes(SECRET_ACCESS_KEY)) Dim signature As String = Convert.ToBase64String(hmac.ComputeHash(ASCIIEncoding.UTF8.GetBytes(clearText))) REM Request the next document from PDF Alchemy. Dim req As HttpWebRequest = HttpWebRequest.Create("https://www.pdfalchemy.com" & request) req.Headers.Add("X-PDF-Alchemy-Date", timestamp) req.Headers.Add("X-PDF-Alchemy-Signature", signature) Try Dim response As HttpWebResponse = req.GetResponse() Dim responseStream As Stream = response.GetResponseStream() Dim filename As String = response.GetResponseHeader("Content-Disposition").Split("""")(1) Dim fileStream As FileStream = File.OpenWrite(filename) Dim buffer(4096) As Byte Dim bytesRead As Integer Do bytesRead = responseStream.Read(buffer, 0, buffer.Length) If bytesRead > 0 Then fileStream.Write(buffer, 0, bytesRead) End If Loop While bytesRead > 0 responseStream.Close() response.Close() fileStream.Close() Console.WriteLine("Downloaded '" & filename & "'.") Return response.GetResponseHeader("X-PDF-Alchemy-ID") Catch ex As Exception Console.WriteLine(ex.Message) End Try Return "" End Function REM Removes documentId from the PDF Alchemy outqueue. Sub DeleteDocument(ByVal documentId As String) REM Generate the HMAC-SHA1 signature. Dim timestamp As String = DateTime.UtcNow.ToString("r") Dim request As String = "/" & ACCESS_KEY_ID & "/outqueue/" & HttpUtility.UrlEncode(documentId) Dim clearText As String = "DELETE" & vbLf & ACCESS_KEY_ID & vbLf & timestamp & vbLf & request Dim hmac As HMACSHA1 = New HMACSHA1(ASCIIEncoding.UTF8.GetBytes(SECRET_ACCESS_KEY)) Dim signature As String = Convert.ToBase64String(hmac.ComputeHash(ASCIIEncoding.UTF8.GetBytes(clearText))) REM Remove the document from PDF Alchemy. Dim req As HttpWebRequest = HttpWebRequest.Create("https://www.pdfalchemy.com" & request) req.Method = "DELETE" req.Headers.Add("X-PDF-Alchemy-Date", timestamp) req.Headers.Add("X-PDF-Alchemy-Signature", signature) Try req.GetResponse().Close() Console.WriteLine("Removed '" & documentId & "' from PDF Alchemy.") Catch ex As Exception Console.WriteLine(ex.Message) End Try End Sub Sub Main() Dim documentId As String Do documentId = DownloadNext() If documentId.Length > 0 Then DeleteDocument(documentId) End If Loop Until documentId.Length = 0 End Sub End Module