title: issue with URLSearchParams in angular 2
body: <p>I am trying to call a POST service with url-encoded data.
  i have written my method to convert json to url encoded string. </p>
  
  <pre><code>urlEncode(reqData){
  if(reqData!=null){
    console.log("reqData encode:"+JSON.stringify(reqData));
    let reqUrlEncodedBody = new URLSearchParams();
    for(let key in reqData){
      console.log("key:"+key+" ,value:"+reqData[key]);
      reqUrlEncodedBody.append((key),encodeURIComponent(reqData[key]));
    }
    console.log("urlencoded string:"+reqUrlEncodedBody.toString());
    return reqUrlEncodedBody.toString();
   }
  }
  </code></pre>
  
  <p>now i am passing below object to it:</p>
  
  <pre><code>let validateTokenData = 
  {
   "grant_type" : "ss:zxz.com:oox:grant_type:some",
   "token":currentAuthToken
  };
  </code></pre>
  
  <p>the output string of it is:   </p>
  
  <pre><code>grant_type=ss:zxz.com:oox:grant_type:some&amp;token=ghjsdassa
  </code></pre>
  
  <p>instead of:</p>
  
  <pre><code>ss%3Azxz.com%3Aoox%3Agrant_type%3Asome&amp;token=ghjsdassa
  </code></pre>
  
  <p>so basically its not converting the <strong>:</strong> to %3A. if i use encodeURIComponent its becoming %253A i.e. encoding twice.</p>
  
  <p>can someone suggest what to be done??</p>