Some sample code:
# WebClient object, for querying a web server through a proxy server with POST data
$wc = new-Object System.Net.WebClient
$proxy = New-Object System.Net.WebProxy('proxy.local', '8080')
$proxy.BypassList = 'someserver.local'
$wc.proxy = $proxy
$post_vars = new-object System.Collections.Specialized.NameValueCollection
# Download a page
$startpage = $wc.DownloadString("http://wherever.com")
$post_vars.Add('variable1','value1')
$post_vars.Add('variable2',$value2)
$endpage = $wc.UploadValues('http://wherever.com/upload', 'POST', $post_vars)
# For debugging:
$response = [System.Text.Encoding]::ASCII.GetString($endpage)
Write-Host $response