1
我试图在ASP.NET MVC 3应用程序中执行编程HTTP POST。目的是模仿表单提交。WebRequest.GetResponseStream()在ASP.NET MVC 3项目中失败
我用下面的代码(为了保密略有修改):
string input = "foo=bar";
byte[] data = Encoding.UTF8.GetBytes(input);
var request = (HttpWebRequest)WebRequest.Create("http://my.domain.com/endpoint");
request.ContentLength = data.Length;
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
using (var stream = request.GetRequestStream()) {
stream.Write(request);
stream.Close();
}
var response = request.GetResponse();
// get the response data, do backflips, save the world
的问题是,我得到了.GetRequestStream()
通话过程中发生错误,说我无法连接到URL资源。
但是,如果我在控制台应用程序中插入完全相同的代码,我可以很好地连接。一位同事也设法在WCF服务应用程序中使用相同的代码进行连接。
这使我疯狂。任何帮助,将不胜感激。
第一个明显的区别是与控制台应用程序相关的安全性和站点不同。尝试摆弄你的安全配置文件 - 你运行什么类型的用户?看看是否有帮助 – 2012-01-31 09:45:08
还请确保该用户有权在防火墙(端口80)中进行该呼叫。 – 2012-01-31 09:47:26
@rangitatanz〜是的,也想到了 - 这就是为什么有WCF服务应用程序测试。但绝对会更多地考虑这一点。 – 2012-01-31 09:51:28