title: PHP CURL use proxy to POST
body: <p>I'm trying to create a script that posts to an URL, using a list of proxies. The script seems to work fine without setting a proxy (CURLOPT_PROXY to null), but with a proxy set it does not seem to work. Does anybody know what I'm doing wrong here? The error I'm getting when posting with a proxy is:</p>
  
  <pre><code>ERROR
  
  The requested URL could not be retrieved
  
  Invalid Request error was encountered while trying to process the request:
  
  POST /###/ HTTP/1.1
  Host: ###
  Accept: */*
  Proxy-Connection: Keep-Alive
  Content-Length: 368
  Expect: 100-continue
  Content-Type: multipart/form-data; boundary=----------------------------9b24e849cac0
  Some possible problems are:
  
  Missing or unknown request method.
  
  Missing URL.
  
  Missing HTTP Identifier (HTTP/1.0).
  
  Request is too large.
  
  Content-Length missing for POST or PUT requests.
  
  Illegal character in hostname; underscores are not allowed.
  </code></pre>
  
  <p>And my code is: </p>
  
  <pre><code>$url = 'urltopost';
  $proxy = 'proxy:port';
  
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL,$url);
  curl_setopt($ch, CURLOPT_PROXY, $proxy);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_POST, true);
  
  $data = array(
      'postname1' =&gt; 'value1',
      'postname2' =&gt; 'value2'
  );
  
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  
  $curl_scraped_page = curl_exec($ch);
  curl_close($ch);
  
  echo $curl_scraped_page;
  </code></pre>