Communicate with server using PUT

Thomas McGrath III mcgrath3 at mac.com
Thu Jun 27 10:07:01 EDT 2013


Ralph, I'm trying to learn about the Google api and understand your code and wanted to know what is expected in CSZ to feed to this function? what is your typical line of code that calls this function?

Thanks

-- Tom McGrath III
http://lazyriver.on-rev.com
mcgrath3 at mac.com

On Jun 26, 2013, at 8:03 PM, Ralph DiMola <rdimola at evergreeninfo.net> wrote:

> J,
> 
> Well I guess no attachments on the list. Here it is in-line.
> 
> function GeoCode StreetAddress , CSZ
> 
>   --Status Codes
>   --"OK" indicates that no errors occurred; the address was successfully
> parsed and at least one geocode was returned.
>   --"ZERO_RESULTS" indicates that the geocode was successful but returned
> no results. This may occur if the geocode was passed a non-existent address
> or a latlng in a remote location.
>   --"OVER_QUERY_LIMIT" indicates that you are over your quota.
>   --"REQUEST_DENIED" indicates that your request was denied, generally
> because of lack of a sensor parameter.
>   --"INVALID_REQUEST"generally indicates that the query (address or latlng)
> is missing
> 
> 
>   --Location Types
>   --"ROOFTOP" indicates that the returned result is a precise geocode for
> which we have location information accurate down to street
>   --     address precision.
>   --"RANGE_INTERPOLATED" indicates that the returned result reflects an
> approximation (usually on a road) interpolated between two
>   --    precise points (such as intersections). Interpolated results are
> generally returned when rooftop geocodes are unavailable
>   --    for a street address.
>   --"GEOMETRIC_CENTER" indicates that the returned result is the geometric
> center of a result such as a polyline (for example, a street)
>   --    or polygon (region).
>   --"APPROXIMATE" indicates that the returned result is approximate
> 
>   local gxml , txml , str1 , pos1 , add1 , I , str2
>   Local Geo
> 
>   put empty into Geo
>   repeat with I = 1 to the number of lines in StreetAddress
>      put offset ("#",line I of StreetAddress) into pos1
>      if pos1 <> 0 then put char 1 to (pos1-1) of line I of StreetAddress
> into line I of Streetaddress
>      Replace "  " with " " in line I of StreetAddress
>      replace " " with "+" in line I of StreetAddress
>      put Add1 && Line I of Streetaddress into Add1
>   end repeat
>   delete char 1 in Add1
>   Replace "  " with " " in CSZ
>   replace " " with "+" in CSZ
> 
>   put url  ("http://maps.googleapis.com/maps/api/geocode/xml?address=" &
> add1 & comma & "+" & CSZ & "&sensor=false") into gxml
>   delete line 1 in gxml
>   put revCreateXMLTree(gxml,true,true,false) into txml
>   put revxmlnodecontents(txml,"GeocodeResponse/status") into geo["Status"]
>   replace "OVER_" with "" in geo["Status"]
>   if revxmlnodecontents(txml,"GeocodeResponse/status") = "OK" then
>      if xmlnodecontents(txml,"GeocodeResponse/result/formatted_address") is
> not empty then \
>            put
> xmlnodecontents(txml,"GeocodeResponse/result/formatted_address") into
> Geo["FormattedAddress"]
>      put xmlnodecontents(txml,"GeocodeResponse/result/partial_match") into
> Geo["PartialMatch"]
>      repeat with I = 1 to
> revxmlnumberofchildren(txml,"/GeocodeResponse/result","address_component",1)
>         switch
> revxmlnodecontents(txml,"GeocodeResponse/result/address_component[" & I &
> "]/type")
>            Case "administrative_area_level_2"
>               put
> revxmlnodecontents(txml,"GeocodeResponse/result/address_component[" & I &
> "]/long_name")  into geo["County"]
>               Break
>            Case "administrative_area_level_3"
>               put
> revxmlnodecontents(txml,"GeocodeResponse/result/address_component[" & I &
> "]/long_name")  into geo["City"]
>               Break
>            Case "street_number"
>               put
> revxmlnodecontents(txml,"GeocodeResponse/result/address_component[" & I &
> "]/long_name")  into geo["StreetNumber"]
>               Break   
>            Case "route"
>               put
> revxmlnodecontents(txml,"GeocodeResponse/result/address_component[" & I &
> "]/long_name")  into geo["Route"]
>               Break   
>            Case "locality"
>               put
> revxmlnodecontents(txml,"GeocodeResponse/result/address_component[" & I &
> "]/long_name")  into geo["City"]
>               Break
>            Case "administrative_area_level_1"
>               put
> revxmlnodecontents(txml,"GeocodeResponse/result/address_component[" & I &
> "]/long_name")  into geo["StateName"]
>               put
> revxmlnodecontents(txml,"GeocodeResponse/result/address_component[" & I &
> "]/short_name")  into geo["State"]
>               Break
>            Case "Country"
>               put
> revxmlnodecontents(txml,"GeocodeResponse/result/address_component[" & I &
> "]/long_name")  into geo["Country"]
>               Break
>            Case "postal_code"
>               put
> revxmlnodecontents(txml,"GeocodeResponse/result/address_component[" & I &
> "]/long_name")  into geo["ZIP"]
>               Break
>            default
>               --breakpoint
>               break
>         end switch
>      end repeat
>      put
> revXMLChildNames(txml,"/GeocodeResponse/result/geometry",comma,,false) into
> str1
>      repeat for each item nodename in str1
>         switch nodename
>            Case "location"
>               put
> revxmlnodecontents(txml,"GeocodeResponse/result/geometry/"&nodename&"/lat")
> into geo["Lat"]["Center"]
>               put
> revxmlnodecontents(txml,"GeocodeResponse/result/geometry/"&nodename&"/lng")
> into geo["Lon"]["Center"]
>               break
>            Case "location_type"
>               put
> revxmlnodecontents(txml,"GeocodeResponse/result/geometry/"&nodename)  into
> geo["LocationType"]
>               replace "RANGE_" with empty in geo["LocationType"]
>               break
>            Case "viewport"
>               put
> revXMLChildNames(txml,"/GeocodeResponse/result/geometry/"&nodename,comma,,fa
> lse) into str2
>               repeat for each item vp in str2
>                  put
> revxmlnodecontents(txml,"GeocodeResponse/result/geometry/"&nodename&slash&vp
> &"/lat")  into geo["Lat"][vp]
>                  put
> revxmlnodecontents(txml,"GeocodeResponse/result/geometry/"&nodename&slash&vp
> &"/lng")  into geo["Lon"][vp]
>               end repeat
>               break
>         end switch         
>      end repeat
>   end if
>   --breakpoint
>   return geo
> end GeoCode
> 
> Ralph DiMola
> IT Director
> Evergreen Information Services
> rdimola at evergreeninfo.net
> 
> 
> -----Original Message-----
> From: use-livecode [mailto:use-livecode-bounces at lists.runrev.com] On Behalf
> Of J. Landman Gay
> Sent: Wednesday, June 26, 2013 7:23 PM
> To: How to use LiveCode
> Subject: Re: Communicate with server using PUT
> 
> When I use the full URL with "get url" it returns a 404. When the server
> person does it from Rails, they get data back. I need to get the same data
> back, so I guess checking the headers won't work. The server responds with
> stuff I need to use.
> 
> So if "get URL" is the way to do it, then the "get" should give me the data.
> The 404 is odd, but maybe we can figure out that part.
> 
> 
> On 6/26/13 6:11 PM, Monte Goulding wrote:
>> Should be the latter... what's the error?
>> 
>> On 27/06/2013, at 9:07 AM, "J. Landman Gay" <jacque at hyperactivesw.com>
> wrote:
>> 
>>> That's an idea, thanks.
>>> 
>>> I'm having trouble actually doing the PUT. I need to send a string like
> this:
>>> 
>>> http://domain.com/page?thing=one&other=two&somethingelse=three
>>> 
>>> What's the proper way to format that? Should I be using this:
>>> 
>>> put "thing=one&other=two&somethingelse=three" into url
> "http://domain.com/page"
>>> 
>>> Or should I use "get URL" with the full URL? Both ways are returning
> errors.
>>> 
>>> 
>>> On 6/26/13 5:53 PM, Monte Goulding wrote:
>>>> you should be able to check the libURLLastRHHeaders.. unless you are
>>>> talking about mobile... actually there's no put on mobile anyway...
>>>> 
>>>> On 27/06/2013, at 8:48 AM, "J. Landman Gay"
>>>> <jacque at hyperactivesw.com> wrote:
>>>> 
>>>>> I need to send data to a server and they want me to use PUT instead
>>>>> of POST. I also need to get a verification afterward to know
>>>>> whether the transaction succeeded or not. The docs aren't clear on
>>>>> that, it just says errors are reported in the result.
>>>>> 
>>>>> Before I spend too much time on this, does a PUT also provide a
>>>>> response in the result?
>>> 
>>> 
>>> --
>>> Jacqueline Landman Gay         |     jacque at hyperactivesw.com
>>> HyperActive Software           |     http://www.hyperactivesw.com
>>> 
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>> 
>> --
>> Monte Goulding
>> 
>> M E R Goulding - software development services
>> mergExt - There's an external for that!
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>> 
> 
> 
> -- 
> Jacqueline Landman Gay         |     jacque at hyperactivesw.com
> HyperActive Software           |     http://www.hyperactivesw.com
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode





More information about the use-livecode mailing list