自己写的C#代码如下:static string RegularFlowURL = "http://127.0.0.1/flowserver/html/menu_detail.php";
public static void Check()
{
    try
    {
         System.Net.ServicePointManager.Expect100Continue = false;
         Stream instream = null;
         StreamReader sr = null;
         HttpWebResponse response = null;
         HttpWebRequest request = null;
         Encoding encoding = Encoding.UTF8;
         request = WebRequest.Create(RegularFlowURL) as HttpWebRequest;
         response = request.GetResponse() as HttpWebResponse;
         instream = response.GetResponseStream();
         sr = new StreamReader(instream, encoding);
         string content = sr.ReadToEnd();
         MessageBox.Show(content);
    }
    catch (Exception ee)
    {
        MessageBox.Show(ee.ToString());
    }这样会弹出该php文件的源代码(除PHP语言之外),但就是没能执行该php文件原本发送邮件的功能。若用浏览器访问此PHP文件,则可正常发送邮件。该怎么改呢?请高手指点!

解决方案 »

  1.   

    为什么不从PHP这边提供一个发邮件的Web API呢?
      

  2.   

    http://127.0.0.1/flowserver/html/menu_detail.php这里面有没有涉及登录后才能发一类的,你用那样请求,相应的参数没加,肯定发不出去啊,先分析一下那个PHP文件需要传递哪些参数
      

  3.   

    你想要的不是 访问PHP 吧?  而是访问 WEB 吧
      

  4.   

    使用 system.net 
    WebClient 吧。
    可以帮你解决到你需要的问题
      

  5.   

    menu_detail.php不用登陆,也不用传递参数,它自己通过js代码每隔一分钟判断一次是否要发邮件,要发的话就调用sengmail.php这个文件来实现发送
      

  6.   

    [Quote=引用 4 楼  的回复:]你想要的不是 访问PHP 吧?  而是访问 WEB 吧
    [呃,就是访问PHP,这个PHP可以判断是否需要发邮件(用JS代码判断),需要的话则调用发邮件的文件
      

  7.   

    WebRequest是不会去执行js的,要么用WebBrowser,要么修改服务端让它提供一个可以调用的发送邮件API
      

  8.   

    JS是在浏览器执行的,用C# WebBrowser 这个类来访问PHP文件,因为WebBroswer这个类,用的是IE的内核。你可以理解为,IE就是用WebBrowser来写的,WebBrowser就是个小浏览器。或者你这个需求,是不需要JS的,C#可以定时访问一个PHP文件,这个PHP文件直接去数据库中搜索数据,有异常就调用发送邮件的代码,这样就不需要WebBrowser了。
      

  9.   

    LZ的问题解决了吗,我现在也要写一个C#访问php页面的功能,可以指点我下吗?没有做过页面