Brand new to Ruby. I'm referencing the Curb documentation and attempting to submit a request in curl that utilizes a security token. Here are the 3 parts to my header with my traditional request:
How would I structure Curb to submit Name, Value and Comment as seen above?
What I'm starting with:
c = Curl::Easy.new("http://website.com") do |curl|
curl.headers["Name"] = "My-Security-Token"
curl.headers["Value"] = "1234567890"
curl.headers["Comment"] = "website.com"
curl.verbose = true
end
c.perform
Here are the 3 parts to my header with my traditional request
- My-Security-Token
- 1234567890
- website.com
Headers consist of name/value pairs, so your description doesn't make any sense.
It looks your header name should be:
My-Security-Token
and it's value should be:
1234567890
To make a GET request
(you didn't mention what type of request you are making) and specify that header, you can do this:
require 'curb'
http = Curl.get("http://website.com/") do |http|
http.headers["My-Security-Token"] = "1234567890"
end
puts http.body_str[0..249] #Output the first 250 characters of the response
If you want to use verbose mode, which will display the actual request and response, you can do this:
require 'curb'
c = Curl::Easy.new("http://www.google.com/") do |curl|
curl.headers["My-Security-Token"] = "1234567890"
curl.verbose = true
end
c.perform #Outputs the request and the response
puts c.body_str[0..249] #body_str => the body of the response
output:
* About to connect() to www.google.com port 80 (#0)
* Trying 74.125.28.147... * Connected to www.google.com (74.125.28.147) port 80 (#0)
> GET / HTTP/1.1
Host: www.google.com
Accept: */*
My-Security-Token: 1234567890 #***HERE IS YOUR CUSTOM HEADER****
< HTTP/1.1 200 OK
< Date: Tue, 03 Mar 2015 00:14:42 GMT
< Expires: -1
< Cache-Control: private, max-age=0
< Content-Type: text/html; charset=ISO-8859-1
< Set-Cookie: PREF=ID=479a8fa626097193:FF=0:TM=1425341682:LM=1425341682:S=5kflGPOAzEx-uMWb; expires=Thu, 02-Mar-2017 00:14:42 GMT; path=/; domain=.google.com
< Set-Cookie: NID=67=Eim3D__PFGbpSWdcIH9IPhkuDEVMFjN4ShU9gA6Z_rMryMoI6nv--sIjk_E00_EpMfSe3RkPO5dYjV7yGTXT3oMLX-t7FsrKSJmF7-OffAuLKrr5KfV1IZzL9yaJQKiB; expires=Wed, 02-Sep-2015 00:14:42 GMT; path=/; domain=.google.com; HttpOnly
< P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
< Server: gws
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: SAMEORIGIN
< Alternate-Protocol: 80:quic,p=0.08
< Accept-Ranges: none
< Vary: Accept-Encoding
< Transfer-Encoding: chunked
<
* Expire cleared
* Connection #0 to host www.google.com left intact
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en"><head><meta content="Search the world's information, including webpages, images, videos and more. Google has many specia
If you actually want the custom headers to be:
Name: My-Security-Token
Value: 1234567890
Comment: website.com
...then you can do this:
require 'curb'
c = Curl::Easy.new("http://www.google.com/") do |curl|
curl.headers["Name"] = "My-Security-Token"
curl.headers["Value"] = "1234567890"
curl.headers["Comment"] = "website.com"
curl.verbose = true
end
c.perform
puts c.body_str[0..249]
...which will produce output like this:
* About to connect() to www.google.com port 80 (#0)
* Trying 74.125.28.105... * Connected to www.google.com (74.125.28.105) port 80 (#0)
> GET / HTTP/1.1
Host: www.google.com
Accept: */*
Name: My-Security-Token #HERE ARE YOUR HEADERS
Value: 1234567890 #HERE
Comment: website.com #HERE
...
...
If nothing above does what you want, then instead of describing your request, how about posting your actual "traditional" request? If you don't know how to do that, search google.