我将使用网络服务向客户小区发送短信。 我的提供商(Vodafone-Redbox)发给我一个WDSL文件来使用他们的服务。我使用提供的文件在我的Web应用程序中添加了一个引用,并成功调用了可用的函数。这里没问题。
尝试使用"确认"时会出现问题。功能,以确认SMS已到达其目的地。对于此功能,沃达丰向我询问了一个URL,以XML格式发送确认消息。考虑到对URL(ASP.NET webform)进行GET或POST,我向他们询问了方法和参数名称,但他们的回答是没有触发GET或POST,只是系统"发送&# 34; XML到URL。据我所知,从另一个网站向webform发送内容的唯一方法是使用参数通过GET或POST,但我知道我的技能非常有限,我可以做到这一点这里错了。
试图找出如何捕获"发送的XML,我想到了在调用PageLoad函数时使用Request.Params调用进入页面的所有内容。使用Params集合中的键值对,构造一个字符串并将其保存在数据库中。
protected void Page_Load(object sender, EventArgs e)
{
/* Connect to database */
try
{
NameValueCollection valoresentrada = Request.Params;
int numvalores = valoresentrada.Count;
StringBuilder sbmensaje = new StringBuilder();
if (numvalores > 0)
{
sbmensaje.Append("Page invoked with params.\n");
for (int i = 0; i < numvalores; i++)
{
sbmensaje.Append("Clave nº" + (i + 1).ToString() + ": " + valoresentrada[i]);
sbmensaje.Append(". Valor: " + valoresentrada.Get(i));
sbmensaje.Append("\n");
}
}
else
{
sbmensaje.Append("Page invoked with no params.\n");
}
/* Save page access and string to database */
}
catch (Exception ex)
{
/* Save page access and error to database */
}
finally
{
/* Disconnect database */
}
}
当我用浏览器打开URL时,代码工作(显然没有捕获XML,但是注册了对页面的访问,并且params集合被加入并存储在数据库中)。但是当沃达丰假设用ACK发送XML时,数据库中没有存储任何内容,这意味着不会执行Page_Load函数。我已经联系了沃达丰,但答案只是他们没有为客户的应用程序开发提供支持。
此时我不知道程序是否正确但是应该在页面生命周期的其他点(也许是Page_Init?)中实现,如果程序是绝对愚蠢的,如果还有另一种方法接受&#34;某事&#34;发送到一个页面...我完全迷失了,我无法在互联网上找到文章。每当我寻找&#34;将XML发送到ASP.NET页面时#34;我找到了有关如何创建Web服务的说明,但没有找到如何收集Web服务发送的响应的说明。如果有人曾经不得不处理这样的事情,或者有一些可以帮助我的线索,我将永远感激。