I actually have many HTTP GET API calls of the same format, they are all
based on ActiveResource models
Eg:
response = User.find(:one, :from =>
"#{BACKEND_HOST_PATH}/users/#{session[:user_id]}/get_preferences.xml",
:params => {:session_key => session[:session_key]})
and the User model defines self.site as:
self.site = "http://#{BACKEND_API_KEY}@#{BACKEND_HOST_AND_PORT}"
so I am pretty sure that the
http://APIKEY@DOMAIN_NAME:PORT_NUMBER/PATH_TO_RESOURCE.RESPONSE_FORMAT/?PARAM_NAME=PARAM_VALUE
works fine. The main reason I am not using this pattern to make the POST
call is: The xml content that is contained the POST message's body is a
little complex.
Is there anyother way I can make a POST to the API.
7stud -- wrote:
> 7stud -- wrote:
>> 7stud -- wrote:
>>> 7stud -- wrote:
>>>> The first thing I would do is try to get a response from the server
>>>> without all the variables in your request string. To begin with, you
>>>> need a valid API key and a valid session key. Then you can try
>>>> something like this:
>>>>
>>>
>>> I lied. That's not the first thing I would try. The first thing I
>>> would try is posting your url into your browser's address bar to see if
>>> you get a response.
>>
>> If that didn't work, then I would start looking for the specs on valid
>> host names.
>>
>> ----
>> Restrictions on valid host names
>>
>> Hostnames are composed of series of labels concatenated with dots, as
>> are all domain names[1]. For example, "en.wikipedia.org" is a hostname.
>> Each label must be between 1 and 63 characters long, and the entire
>> hostname has a maximum of 255 characters.
>>
>> RFCs mandate that a hostname's labels may contain only the ASCII letters
>> 'a' through 'z' (case-insensitive), the digits '0' through '9', and the
>> hyphen. Hostname labels cannot begin or end with a hyphen. No other
>> symbols, punctuation characters, or blank spaces are permitted.
>> ------
>
> Then I would determine that this format is a mistake:
>
>>the URL should be of the format:
>
>>http://#{API_KEY}@#{BACKEND_HOST}:#{BACKEND_PORT}/#{PATH_TO_RESOURCE}?>session_key=#{SESSION_KEY}
>
> and I would try the following instead:
>
> http://#{BACKEND_HOST}:#{BACKEND_PORT}/#{API_KEY}@#{BACKEND_HOST}:#{BACKEND_PORT}#{PATH_TO_RESOURCE}?session_key=#{SESSION_KEY}
>
> or some variation thereof.
--
Posted via http://www.ruby-forum.com/.