title: CherryPy passing URL with query params as single parameter in POST
body: <p>I have a Python 3.4 CherryPy web application with a POST that does some processing on a YouTube URL.</p>
  
  <pre><code>POST localhost:8080/api/url=https://www.youtube.com/watch?v=WS6-vI70oc0
  </code></pre>
  
  <p>If I use a YouTube URL with query params, e.g.:</p>
  
  <pre><code>POST localhost:8080/api/url=https://www.youtube.com/watch?v=WS6-vI70oc0&amp;list=RDGMEM_v2KDBP3d4f8uT-ilrs8fQVMWS6-vI70oc0
  </code></pre>
  
  <p>CherryPy treats this query param (&amp;list) as a query param to my POST API. Output from my API:</p>
  
  <pre><code>def POST(self, youtube_url=None, **kwargs):
      print('YOUTUBE URL: %s'%youtube_url)
      print('kwargs: %s'%kwargs)
  </code></pre>
  
  <p>output:</p>
  
  <pre><code>YOUTUBE URL: https://www.youtube.com/watch?v=WS6-vI70oc0
  kwargs: {'list': 'RDGMEM_v2KDBP3d4f8uT-ilrs8fQVMWS6-vI70oc0"'}
  </code></pre>
  
  <p>However I would like the entire string to be treated as the youtube_url, without CherryPy automatically separating the ampersand sections into query params.</p>
  
  <p>From the Javascript side I tried encodeURI and surrounding the entire URL with "", which didn't change CherryPy's behavior.</p>
  
  <p>Javascript/HTML side:</p>
  
  <pre><code>//input box in HTML:
  &lt;input type="text" class="form-control" id="youtubeUrlString" value="https://www.youtube.com/watch?v=2XNEmxl2rYs" style="height: 34px"&gt;
  
  //get input box value in javascript and post
  var urlString = document.getElementById('youtubeUrlString').value;
  req.open('POST', api_url + '?youtube_url=' + encodeURI(urlString) + '"');
  </code></pre>