| 
									
										
										
										
											2014-05-23 23:20:15 -04:00
										 |  |  | USING: assocs help.markup help.syntax kernel strings ;
 | 
					
						
							| 
									
										
										
										
											2008-09-29 20:43:04 -04:00
										 |  |  | IN: urls.encoding | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | HELP: url-decode | 
					
						
							|  |  |  | { $values { "str" string } { "decoded" string } } | 
					
						
							|  |  |  | { $description "Decodes a URL-encoded string." } ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | HELP: url-encode | 
					
						
							|  |  |  | { $values { "str" string } { "encoded" string } } | 
					
						
							| 
									
										
										
										
											2008-11-01 05:40:07 -04:00
										 |  |  | { $description "URL-encodes a string, excluding certain characters, such as \"/\"." } ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | HELP: url-encode-full | 
					
						
							|  |  |  | { $values { "str" string } { "encoded" string } } | 
					
						
							|  |  |  | { $description "URL-encodes a string, including all reserved characters, such as \"/\"." } ;
 | 
					
						
							| 
									
										
										
										
											2008-09-29 20:43:04 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | HELP: url-quotable? | 
					
						
							| 
									
										
										
										
											2014-05-23 23:20:15 -04:00
										 |  |  | { $values { "ch" "a character" } { "?" boolean } } | 
					
						
							| 
									
										
										
										
											2008-09-29 20:43:04 -04:00
										 |  |  | { $description "Tests if a character be used without URL-encoding in a URL." } ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | HELP: assoc>query | 
					
						
							|  |  |  | { $values { "assoc" assoc } { "str" string } } | 
					
						
							|  |  |  | { $description "Converts an assoc of query parameters into a query string, performing URL encoding." } | 
					
						
							|  |  |  | { $notes "This word is used by the implementation of " { $link "urls" } ". It is also used by the HTTP client to encode POST requests." } | 
					
						
							|  |  |  | { $examples | 
					
						
							|  |  |  |     { $example | 
					
						
							| 
									
										
										
										
											2008-09-29 23:16:55 -04:00
										 |  |  |         "USING: io urls.encoding ;" | 
					
						
							| 
									
										
										
										
											2008-09-29 20:43:04 -04:00
										 |  |  |         "{ { \"from\" \"Lead\" } { \"to\" \"Gold, please\" } }" | 
					
						
							|  |  |  |         "assoc>query print" | 
					
						
							| 
									
										
										
										
											2009-07-10 08:52:20 -04:00
										 |  |  |         "from=Lead&to=Gold%2C%20please" | 
					
						
							| 
									
										
										
										
											2008-09-29 20:43:04 -04:00
										 |  |  |     } | 
					
						
							|  |  |  | } ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | HELP: query>assoc | 
					
						
							|  |  |  | { $values { "query" string } { "assoc" assoc } } | 
					
						
							|  |  |  | { $description "Parses a URL query string and URL-decodes each component." } | 
					
						
							|  |  |  | { $notes "This word is used by the implementation of " { $link "urls" } ". It is also used by the HTTP server to parse POST requests." } | 
					
						
							|  |  |  | { $examples | 
					
						
							| 
									
										
										
										
											2015-11-04 18:16:36 -05:00
										 |  |  |     { $example | 
					
						
							|  |  |  |         "USING: linked-assocs prettyprint urls.encoding ;" | 
					
						
							| 
									
										
										
										
											2008-09-29 20:43:04 -04:00
										 |  |  |         "\"gender=female&agefrom=22&ageto=28&location=Omaha+NE\"" | 
					
						
							|  |  |  |         "query>assoc ." | 
					
						
							| 
									
										
										
										
											2015-11-04 18:16:36 -05:00
										 |  |  |         "LH{ | 
					
						
							| 
									
										
										
										
											2015-07-26 01:59:56 -04:00
										 |  |  |     { \"gender\" \"female\" } | 
					
						
							|  |  |  |     { \"agefrom\" \"22\" } | 
					
						
							|  |  |  |     { \"ageto\" \"28\" } | 
					
						
							|  |  |  |     { \"location\" \"Omaha NE\" } | 
					
						
							|  |  |  | }" | 
					
						
							| 
									
										
										
										
											2008-09-29 20:43:04 -04:00
										 |  |  |     } | 
					
						
							|  |  |  | } ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ARTICLE: "url-encoding" "URL encoding and decoding" | 
					
						
							|  |  |  | "URL encoding and decoding strings:" | 
					
						
							| 
									
										
										
										
											2009-10-01 15:56:36 -04:00
										 |  |  | { $subsections | 
					
						
							|  |  |  |     url-encode | 
					
						
							|  |  |  |     url-decode | 
					
						
							|  |  |  |     url-quotable? | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2008-09-29 20:43:04 -04:00
										 |  |  | "Encoding and decoding queries:" | 
					
						
							| 
									
										
										
										
											2009-10-01 15:56:36 -04:00
										 |  |  | { $subsections | 
					
						
							|  |  |  |     assoc>query | 
					
						
							|  |  |  |     query>assoc | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2008-09-29 20:43:04 -04:00
										 |  |  | "See " { $url "http://en.wikipedia.org/wiki/Percent-encoding" } " for a description of URL encoding." ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ABOUT: "url-encoding" |