//xml объект для того, чтобы принять результат из php //если ответ не нужен, то и этот объект не нужен XmlDocument pageSaveXml = new XmlDocument(); pageSaveXml.PreserveWhitespace = false; //созд. объект, который отравляет GET и POST запросы WebRequest objRequest = WebRequest.Create(siteURL+"save_page_params.php"); objRequest.Method = "POST"; objRequest.ContentType = "application/x-www-form-urlencoded"; objRequest.Timeout = 1000; //объект для формирования нужной мне строки. можно обойтись и плюсами + StringBuilder sendString = new StringBuilder(); sendString.AppendFormat("page={0}&title={1}&shablon={2}&path={3}&menupos={4}", curPage.id, curPage.title, shablonId, curPage.path, curPage.pos); //узнаём длину строки, нужную для POST запросов byte[] SomeBytes = Encoding.UTF8.GetBytes(sendString.ToString()); objRequest.ContentLength = SomeBytes.Length; try { Stream stRequest = objRequest.GetRequestStream();//открывает поток stRequest.Write(SomeBytes, 0, SomeBytes.Length);//пишет в него stRequest.Close(); //тут же ждем ответа от cgi. если ответ не нужен, то не ждите :) HttpWebResponse response = (HttpWebResponse)objRequest.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); pageSaveXml.LoadXml(reader.ReadToEnd());//помещаю ответ в свой xml объект reader.Close(); response.Close(); } catch(Exception ex) { MessageBox.Show(ex.Message,"Что-то, не прошел запрос ((("); }