· 9 years ago · Nov 22, 2016, 11:44 PM
1post '/customers/12345678/domains/example.com/rs/mailboxes/alex.smith', 'text/xml',
2{
3 'password' => 'Secret13!@#',
4 'size' => '2048',
5 'enableVacationMessage' => 'true',
6 'vacationMessage' => 'My Vacation Message',
7 'emailForwardingAddresses' => 'sampletest@example.com,sampletest2@example.com',
8 'saveForwardedEmail' => 'false'
9 'lastName' => 'Testlastname',
10 'firstName' => 'Jay',
11 'generationQualifier' => 'III',
12 'initials' => 'A',
13 'organizationUnit' => 'IT',
14 'businessStreet' => '123 Biz St.',
15 'businessCity' => 'Blacksburg',
16 'businessState' => 'VA',
17 'businessPostalCode' => '24060',
18 'businessCountry' => 'USA',
19 'homeStreet' => '456 Home St.',
20 'homeCity' => 'Charlotte',
21 'homeState' => 'NC',
22 'homePostalCode' => '28210',
23 'homeCountry' => 'USA',
24 'notes' => 'This is my note about my mailbox.',
25 'title' => 'My Title',
26 'userID' => 'J.Test',
27 'customID' => '0123456789',
28 'organizationalStatus' => 'OrgStatus',
29 'employeeType' => 'Full-Time'
30 'visibleInExchangeGAL'=>'true',
31 'visibleInRackspaceEmailCompanyDirectory' => 'false'
32
33}
34
35Imports System.IO
36Imports System.Net
37Imports System.Security.Cryptography
38Imports System.Text
39
40Module Module1
41
42 Private request As HttpWebRequest
43 Private response As HttpWebResponse
44 Private baseUrl As String
45 Private apiKey As String = "REMOVEDFOR SECURITY PURPOSES"
46 Private secretKey As String = "REMOVEDFOR SECURITY PURPOSES"
47
48 Sub Main()
49
50 Post("http://api.emailsrvr.com/v1/", "customers/12345678/domains/example.com/ex/mailboxes/jerry.row/emailaddresses/jerry.row@example.com", "text/xml")
51 End Sub
52
53
54 Public Function [Get](url As String, format As String) As HttpWebResponse
55 request = DirectCast(HttpWebRequest.Create(baseUrl & url), System.Net.HttpWebRequest)
56 request.Method = "GET"
57 SignMessage()
58 AssignFormat(format)
59 Return GetResponseContent()
60 End Function
61
62 Function Post(url As String, data As String, format As String) As HttpWebResponse
63 request = DirectCast(HttpWebRequest.Create(baseUrl & url), System.Net.HttpWebRequest)
64 request.Method = "POST"
65 SignMessage()
66 AssignFormat(format)
67 SendFormData(data)
68 Return GetResponseContent()
69 Console.ReadLine()
70 End Function
71
72 Public Function Put(url As String, data As String, format As String) As HttpWebResponse
73 request = DirectCast(HttpWebRequest.Create(baseUrl & url), System.Net.HttpWebRequest)
74 request.Method = "PUT"
75 SignMessage()
76 AssignFormat(format)
77 SendFormData(data)
78 Return GetResponseContent()
79 End Function
80
81 Public Function Delete(url As String, format As String) As HttpWebResponse
82 request = DirectCast(HttpWebRequest.Create(baseUrl & url), System.Net.HttpWebRequest)
83 request.Method = "DELETE"
84 SignMessage()
85 AssignFormat(format)
86 Return GetResponseContent()
87 End Function
88
89 Private Sub SendFormData(data As String)
90 Dim encoding As New UTF8Encoding()
91 Dim byteData As Byte() = encoding.GetBytes(data)
92 request.ContentType = "application/x-www-form-urlencoded"
93 request.ContentLength = byteData.Length
94 Dim requestStream As Stream = request.GetRequestStream()
95 requestStream.Write(byteData, 0, byteData.Length)
96 requestStream.Close()
97 End Sub
98
99 Private Function GetResponseContent() As HttpWebResponse
100 Try
101 Return DirectCast(request.GetResponse(), HttpWebResponse)
102 Catch e As WebException
103 Return DirectCast(e.Response, HttpWebResponse)
104 End Try
105
106 End Function
107
108 Private Sub SignMessage()
109 Dim userAgent = "Test"
110 request.UserAgent = userAgent
111 Dim dateTime__1 = DateTime.UtcNow.ToString("yyyyMMddHHmmss")
112 Dim dataToSign = apiKey & userAgent & dateTime__1 & secretKey
113 Dim hash = SHA1.Create()
114 Dim signedBytes = hash.ComputeHash(Encoding.UTF8.GetBytes(dataToSign))
115 Dim signature = Convert.ToBase64String(signedBytes)
116
117 request.Headers("X-Api-Signature") = apiKey & ":" & dateTime__1 & ":" & signature
118 End Sub
119
120 Private Sub AssignFormat(format As String)
121 request.Accept = format
122 End Sub
123
124End Module