when i send post data to the proxy server - it returns an error:
Invalid Request error was encountered while trying to process the request:
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.
HTTP/1.1 Expect: feature is being asked from an HTTP/1.0 software.
and headers:
/post.php?tid=19 HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Content-Type: application/x-www-form-urlencoded
Referer: http://site.ru/viewtopic.php?pid=51
Host: site.ru
Content-Length: 552
Expect: 100-continue
Proxy-Connection: Keep-Alive
Set proxy in programm:
request = (HttpWebRequest)HttpWebRequest.Create(postUrl);
request.Proxy = new WebProxy( this.ip + ":" + this.port);
request.UseDefaultCredentials = true;
Sending request:
try
{
System.Net.ServicePointManager.Expect100Continue = false;
Stream dataStream = request.GetRequestStream();
dataStream.Write(data, 0, data.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
reader.Close();
dataStream.Close();
response.Close();
}
catch (WebException ex)
{
Console.WriteLine(ex.Status);
if (ex.Response != null)
{
if (ex.Response.ContentLength != 0)
{
using (var stream = ex.Response.GetResponseStream())
{
using (var reader = new StreamReader(stream))
{
Console.WriteLine(reader.ReadToEnd());
}
}
}
}
}
When the proxy server is disabled or commented out code send post data - request succeeds
//Stream dataStream = request.GetRequestStream();
//dataStream.Write(data, 0, data.Length);
//dataStream.Close();
Thanks for answers !