如何从ASP.NET MVC解决方案调用外部URL
第一篇文章在哪里。 所以最好把它变成一个好的。
我有一个ASP.NET MVC 2 Web应用程序,我有一个actionResult,我需要为我做一个电话。
问题是我需要这个AR来处理一些数据操作,之后我需要它来调用外部URL,这实际上是一个处理向我们公司手机电话发送消息的公司模块。
它只需要调用如下所示的URL:
string url = "http://xxxx/cgi-bin/npcgi?no=" + phoneNumber + "&msg=" + message;
我不需要任何回复信息或任何东西。 只想调用外部URL,这当然超出了我自己的Web应用程序的范围。 (我不想重定向)。 必须在GUI后面调用该URL,而无需用户意识到。 并且他们正在查看的页面不得受到影响。
我尝试过:
Server.Execute(url);
但是没有奏效。 我听说有些人通过在页面上隐藏iFrame来解决这个问题。 将src设置为url可能需要然后以某种方式执行它,以实例化调用。 它对我来说似乎并不那么优雅,但如果这是唯一的解决方案,那么有没有人会举例说明如何做到这一点。 或者,如果你有一个更圆滑的建议,我全都耳朵。
我终于得到了这段代码:
string messageToCallInPatient = "The doctor is ready to see you in 5 minutes. Please wait outside room " + roomName; string url = "http://xxxx/cgi-bin/npcgi?no=" + phoneNumber + "&msg=" + messageToCallInPatient; HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(string.Format(url)); webReq.Method = "GET"; HttpWebResponse webResponse = (HttpWebResponse)webReq.GetResponse(); //I don't use the response for anything right now. But I might log the response answer later on. Stream answer = webResponse.GetResponseStream(); StreamReader _recivedAnswer = new StreamReader(answer);
由于您不希望url返回值,因此最简单的方法是
- AR执行后,使用Webclient触发URL
- 通过HTTP GET或POST(同步或异步)
示例代码
WebClient wc = new WebClient(); wc.UploadProgressChanged += (sender, evtarg) => { Console.WriteLine(evtarg.ProgressPercentage); }; wc.UploadDataCompleted += (sender, evtarg) => { String nResult; if (evtarg.Result != null) { nResult = Encoding.ASCII.GetString(evtarg.Result); Console.WriteLine("STATUS : " + nResult); } else Console.WriteLine("Unexpected Error"); }; String sp= "npcgi??no=" + phoneNumber + "&msg=" + message; System.Uri uri = new Uri("http://xxxx/cgi-bin/"); wc.UploadDataAsync(uri, System.Text.Encoding.ASCII.GetBytes(sb);
该示例使用HTTP POST和异步调用(因此它将在触发URL后立即返回 – 非阻塞)
您可以简单地使用“return Redirect(url);”
- SaveChangesAsync不更新数据库表中的值
- 带有DI Simple Injector的log4net
- 如何以PDF格式呈现ASP.NET MVC视图
- 与Model和ViewModel混淆
- DropDownList不尊重SelectList的Selected属性
- 我的url编码有什么问题?
- 我应该永远不会调用HostingEnvironment.UnregisterObject吗?
- Autofac – 无法创建请求生命周期范围,因为HttpContext不可用 – 由于异步代码?
- WebApi,Autofac,System.Web.Http.Filters.ActionFilterAttribute每个请求的实例