我正在使用HttpWebRequest
. 但有时消息似乎发送了两倍、三倍甚至更多,审查所有过程似乎还可以。
我认为唯一的事情是 HttpWebRequest 正在异步工作。
这是我的代码,
public bool sendSmsGateway(string tcDestino, string tcMensaje, string tcTitulo = "")
{
bool lReturn = false;
string contenido = HttpUtility.UrlEncode(tcMensaje);
string lcTitulo = "SMS Sender";
if (!String.IsNullOrEmpty(tcTitulo))
{
lcTitulo = tcTitulo;
}
lcTitulo = HttpUtility.UrlEncode(lcTitulo);
string fechaEnvio = DateTime.Now.ToString("s");
string url = string.Format(StrSMSGatewayURL, StrSMSGatewayUsuario, StrSMSGatewayPassword, tcDestino, contenido, lcTitulo, fechaEnvio);
HttpWebRequest enviar = (HttpWebRequest)WebRequest.Create(url);
string respuesta = new StreamReader(enviar.GetResponse().GetResponseStream()).ReadToEnd();
StrSMSGatewayRespuesta = respuesta.Trim();
if (StrSMSGatewayRespuesta == StrSMSGatewayRespuestaOk.Trim())
{
lReturn = true;
}
return lReturn;
}
此代码在循环例程中运行,在以下情况下发送消息并将其标记为已发送:
string respuesta = new StreamReader(enviar.GetResponse().GetResponseStream()).ReadToEnd();
返回正确的代码。
我的问题是..有一种方法可以停止进程,或强制代码等到(httpWebRequest send the message and get the response)
或 (timeout succeed)