public string SendSms(string phone, string body) { try { phone = PhoneHelper.NormalizePhone(phone); } catch (Exception e) { throw new InvalidPhoneException(e); } if (!FakeMode) { var url = "http://sms.ru/sms/send"; var parameters = string.Format("api_id={0}&to={1}&text={2}&from={3}", ApiId, phone, body, From); var request = WebRequest.Create(url); request.ContentType = "application/x-www-form-urlencoded"; request.Method = "POST"; var bytes = Encoding.UTF8.GetBytes(parameters); request.ContentLength = bytes.Length; using (var requestStream = request.GetRequestStream()) { requestStream.Write(bytes, 0, bytes.Length); requestStream.Close(); } string answer; using (var response = request.GetResponse()) { using (var streamReader = new StreamReader(response.GetResponseStream())) { answer = streamReader.ReadToEnd().Trim(); } } var lines = answer.Split(new[] { "\n" }, StringSplitOptions.None); var resultCode = Convert.ToInt32(lines[0]); if (resultCode != 100) { throw new SendSmsException(resultCode); } var externalId = lines[1]; return(externalId); } else { return(Guid.NewGuid().ToString()); } }