instead of building the string manually there's also this kind of approach:

```
uri = URI::HTTP.build({:host => 'proxy.foo.com', :userinfo => 'proxyuser', :port => 666})
uri.password = 'proxypass'
uri.to_s
=> "http://proxyuser:proxypass@proxy.foo.com:666"
```

Password handling seems to be kinda kludgy in the URI module i think you could also pass "proxyuser:proxypass" in for the "userinfo" argument, but there's no password argument to URI.build or URI.new