当前位置:编程学习 > C#/ASP.NET >>

C#程序报404错误

开发的一款软件,方法如下,在多数机器能正常使用.但是有一台机器,始终是404,无法访问.但是用IE却可以正常访问此页面.软件的URL请求地址都是正确的,只有一台机器是错误的.防火墙都没开,拦截的也没发现.很奇怪.错误如下

 public string login(string uid, string passWd)
        {
       
            Encoding encoding = Encoding.GetEncoding("UTF-8");

            IDictionary<string, string> parameters = new Dictionary<string, string>();
            parameters.Add("action", "loginIn");
            parameters.Add("uid", uid);
            parameters.Add("pwd", passWd);

            HttpWebResponse response = null;

            response = HttpWebResponseUtility.CreatePostHttpResponse(loginUrl, parameters, null, null, encoding, null);

            StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
            String retValue = sr.ReadToEnd();
            sr.Close();

            return retValue;
        }


System.Net.WebException: 远程服务器返回错误: (404) 未找到。
   在 System.Net.HttpWebRequest.GetResponse()
   在 EM.HttpWebResponseUtility.CreatePostHttpResponse(String url, IDictionary`2 parameters, Nullable`1 timeout, String userAgent, Encoding requestEncoding, CookieCollection cookies)
   在 EM.MethodOption.login(String uid, String passWd)
   在 EM.Login.button1_Click(Object sender, EventArgs e)
--------------------编程问答-------------------- 谁知道 HttpWebResponseUtility 是什么东东? --------------------编程问答-------------------- 用Fiddler调试下,URL不正确。和服务器连接正常。 --------------------编程问答--------------------
引用 2 楼 caozhy 的回复:
用Fiddler调试下,URL不正确。和服务器连接正常。

是正确的. --------------------编程问答-------------------- 兼容性问题吧 --------------------编程问答-------------------- 没有找到页面啊! --------------------编程问答--------------------
引用 5 楼 men52676521 的回复:
没有找到页面啊!

URL是正确的. Fiddler  复制出来的URL 是可以访问的.并且该软件其他机器都能正常使用.
WIN7 64位不知道哪里多了一层设置或者什么防御之类的 --------------------编程问答--------------------
引用 4 楼 ylkjianjiajianjia 的回复:
兼容性问题吧

哪些兼容性?WI7 64位   已安装.NET4 --------------------编程问答-------------------- 这个问题我也遇到过的。有时看服务器使用什么开发的。如果使用apache做服务器的话 你可以使用c#下的client提交就不行了。你需要使用java来写post与get --------------------编程问答--------------------
引用 8 楼 zjg_32333128 的回复:
这个问题我也遇到过的。有时看服务器使用什么开发的。如果使用apache做服务器的话 你可以使用c#下的client提交就不行了。你需要使用java来写post与get


是apache的
但是其他机器又可以哦.
客户端放到其他机器,都没问题 --------------------编程问答-------------------- 帮顶!!!我也想知道为啥? --------------------编程问答-------------------- --------------------编程问答-------------------- 通常 可能 大概~
别人的服务器判断你的请求 直接给你404的~
所以你要把HttpWebResponseUtility伪装成IE,FF,Chrome什么的~ --------------------编程问答--------------------
引用 12 楼 moonwrite 的回复:
通常 可能 大概~
别人的服务器判断你的请求 直接给你404的~
所以你要把HttpWebResponseUtility伪装成IE,FF,Chrome什么的~


DefaultUserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";

是这个吧? --------------------编程问答--------------------
引用 13 楼 meiyoudao 的回复:
Quote: 引用 12 楼 moonwrite 的回复:

通常 可能 大概~
别人的服务器判断你的请求 直接给你404的~
所以你要把HttpWebResponseUtility伪装成IE,FF,Chrome什么的~


DefaultUserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";

是这个吧?


应该是把,其实我也只是猜想~ 另外我也写过抓取程序~发现有些网站的页面,你浏览它,他就会先重定向到其他页面~ ,还有一些很神奇的状态~ ... .....
个人猜想~希望能帮助到你~ --------------------编程问答-------------------- 最近帮一个朋友写iphone预定程序用c#怎么搞都不行。最后还是写了java 来Post才行。很奇怪。 --------------------编程问答-------------------- 使用apache下的httpclient进行url get 与 post 详细的封装可以参考
get方法:http://www.itzhishi.com/function/detail/16.html
post方法:http://www.itzhishi.com/function/detail/17.html
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,