-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIDrive.rb
More file actions
50 lines (40 loc) · 1.82 KB
/
IDrive.rb
File metadata and controls
50 lines (40 loc) · 1.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
require "net/https"
require 'uri'
require 'rexml/document'
module IDrive
class IDriveAPI
def initialize(uid,pwd)
@uid, @pwd = uid, pwd
uri = URI.parse("https://evs.idrive.com/")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new("/evs/getServerAddress")
request.set_form_data({"uid" => @uid,"pwd" => @pwd})
response = http.request(request)
document = REXML::Document.new(response.body)
@base_url = document.root.attributes['webApiServer']
end
def execute(page, parameters)
if page == 'getServerAddress'
uri = URI.parse("https://evs.idrive.com/")
else
uri = URI.parse("https://"+@base_url)
end
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new("/evs/"+page)
if page == 'uploadFile' or page == 'downloadFile'
request['content-type'] = "multipart/form-data"
else
request['content-type'] = "application/x-www-form-urlencoded"
end
parameters['uid'] = @uid
parameters['pwd'] = @pwd
request.set_form_data(parameters)
response = http.request(request)
return response
end
end
end