-
-
Save Integralist/2862917 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby | |
require "webrick" | |
=begin | |
WEBrick is a Ruby library that makes it easy to build an HTTP server with Ruby. | |
It comes with most installations of Ruby by default (it’s part of the standard library), | |
so you can usually create a basic web/HTTP server with only several lines of code. | |
The following code creates a generic WEBrick server on the local machine on port 1234, | |
shuts the server down if the process is interrupted (often done with Ctrl+C). | |
This example lets you call the URL's: "add" and "subtract" and pass through arguments to them | |
Example usage: | |
http://localhost:1234/ (this will show the specified error message) | |
http://localhost:1234/add?a=10&b=10 | |
http://localhost:1234/subtract?a=10&b=9 | |
=end | |
class MyNormalClass | |
def self.add (a, b) | |
a.to_i + b.to_i | |
end | |
def self.subtract (a, b) | |
a.to_i - b.to_i | |
end | |
end | |
class MyServlet < WEBrick::HTTPServlet::AbstractServlet | |
def do_GET (request, response) | |
if request.query["a"] && request.query["b"] | |
a = request.query["a"] | |
b = request.query["b"] | |
response.status = 200 | |
response.content_type = "text/plain" | |
result = nil | |
case request.path | |
when "/add" | |
result = MyNormalClass.add(a, b) | |
when "/subtract" | |
result = MyNormalClass.subtract(a, b) | |
else | |
result = "No such method" | |
end | |
response.body = result.to_s + "\n" | |
else | |
response.status = 200 | |
response.body = "You did not provide the correct parameters" | |
end | |
end | |
end | |
server = WEBrick::HTTPServer.new(:Port => 1234) | |
server.mount "/", MyServlet | |
trap("INT") { | |
server.shutdown | |
} | |
server.start |
We were trying to use this code with ajax, just in case someone get this error:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
This lines at the beginning of the do_GET method will fix it:
response.header['Access-Control-Allow-Origin'] = '*'
response.header['Access-Control-Request-Method'] = '*'
Also if it's needed the ajax call should have url: 'http://127.0.0.1:port' not 'http://localhost:port'
Hope this can help someone.
good example!
We were trying to use this code with ajax, just in case someone get this error:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
This lines at the beginning of the do_GET method will fix it:
response.header['Access-Control-Allow-Origin'] = '*' response.header['Access-Control-Request-Method'] = '*'
Also if it's needed the ajax call should have url: 'http://127.0.0.1:port' not 'http://localhost:port'
Hope this can help someone.
It did, thanks!
Thanks for this example.