During trial on sending GET request to AppFigures’ RESTful API, I started with net/http and add my client key to request hash.
When firing the request, I have some more request params to use. Because of misunderstanding on how the server deal with params and request header, I added those params into request header and had wrong expectation.
Code is like below.
uri = URI(base_url)
request = Net::HTTP::Get.new(uri)
request.basic_auth('username', 'password')
request['X-Client-Key'] = 'app_key'
if args
args.each do |k,v|
request[k.to_s] = v.to_s if v
end
end
This is totally wrong because the params is query parameters which should be put in uri query.
So then the corrected code goes to.
uri = URI(base_url)
uri.query = URI.encode_www_form(args) if args