· 9 years ago · Nov 23, 2016, 12:20 AM
1post '/customers/12345678/domains/example.com/rs/mailboxes/alex.smith', 'text/xml',
2{
3 'password' => 'Secret13!@#',
4 'size' => '2048'
5}
6
7Imports System.IO
8Imports System.Net
9Imports System.Security.Cryptography
10Imports System.Text
11
12Module Module1
13
14 Private request As HttpWebRequest
15 Private response As HttpWebResponse
16 Private baseUrl As String
17 Private apiKey As String = "REMOVEDFOR SECURITY PURPOSES"
18 Private secretKey As String = "REMOVEDFOR SECURITY PURPOSES"
19
20 Sub Main()
21
22 Post("http://api.emailsrvr.com/v1/", "customers/12345678/domains/example.com/ex/mailboxes/jerry.row/emailaddresses/jerry.row@example.com", "text/xml")
23 End Sub
24
25
26 Public Function [Get](url As String, format As String) As HttpWebResponse
27 request = DirectCast(HttpWebRequest.Create(baseUrl & url), System.Net.HttpWebRequest)
28 request.Method = "GET"
29 SignMessage()
30 AssignFormat(format)
31 Return GetResponseContent()
32 End Function
33
34 Function Post(url As String, data As String, format As String) As HttpWebResponse
35 request = DirectCast(HttpWebRequest.Create(baseUrl & url), System.Net.HttpWebRequest)
36 request.Method = "POST"
37 SignMessage()
38 AssignFormat(format)
39 SendFormData(data)
40 Return GetResponseContent()
41 Console.ReadLine()
42 End Function
43
44 Public Function Put(url As String, data As String, format As String) As HttpWebResponse
45 request = DirectCast(HttpWebRequest.Create(baseUrl & url), System.Net.HttpWebRequest)
46 request.Method = "PUT"
47 SignMessage()
48 AssignFormat(format)
49 SendFormData(data)
50 Return GetResponseContent()
51 End Function
52
53 Public Function Delete(url As String, format As String) As HttpWebResponse
54 request = DirectCast(HttpWebRequest.Create(baseUrl & url), System.Net.HttpWebRequest)
55 request.Method = "DELETE"
56 SignMessage()
57 AssignFormat(format)
58 Return GetResponseContent()
59 End Function
60
61 Private Sub SendFormData(data As String)
62 Dim encoding As New UTF8Encoding()
63 Dim byteData As Byte() = encoding.GetBytes(data)
64 request.ContentType = "application/x-www-form-urlencoded"
65 request.ContentLength = byteData.Length
66 Dim requestStream As Stream = request.GetRequestStream()
67 requestStream.Write(byteData, 0, byteData.Length)
68 requestStream.Close()
69 End Sub
70
71 Private Function GetResponseContent() As HttpWebResponse
72 Try
73 Return DirectCast(request.GetResponse(), HttpWebResponse)
74 Catch e As WebException
75 Return DirectCast(e.Response, HttpWebResponse)
76 End Try
77
78 End Function
79
80 Private Sub SignMessage()
81 Dim userAgent = "Test"
82 request.UserAgent = userAgent
83 Dim dateTime__1 = DateTime.UtcNow.ToString("yyyyMMddHHmmss")
84 Dim dataToSign = apiKey & userAgent & dateTime__1 & secretKey
85 Dim hash = SHA1.Create()
86 Dim signedBytes = hash.ComputeHash(Encoding.UTF8.GetBytes(dataToSign))
87 Dim signature = Convert.ToBase64String(signedBytes)
88
89 request.Headers("X-Api-Signature") = apiKey & ":" & dateTime__1 & ":" & signature
90 End Sub
91
92 Private Sub AssignFormat(format As String)
93 request.Accept = format
94 End Sub
95
96End Module