日期:2014-05-18  浏览次数:20950 次

C#如何通过Apache访问PHP文件?
自己写的C#代码如下:
C# code

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文件,则可正常发送邮件。该怎么改呢?请高手指点!

------解决方案--------------------
为什么不从PHP这边提供一个发邮件的Web API呢?
------解决方案--------------------
http://127.0.0.1/flowserver/html/menu_detail.php

这里面有没有涉及登录后才能发一类的,你用那样请求,相应的参数没加,肯定发不出去啊,先分析一下那个PHP文件需要传递哪些参数
------解决方案--------------------
你想要的不是 访问PHP 吧? 而是访问 WEB 吧
------解决方案--------------------
使用 system.net 
WebClient 吧。
可以帮你解决到你需要的问题
------解决方案--------------------
WebRequest是不会去执行js的,要么用WebBrowser,要么修改服务端让它提供一个可以调用的发送邮件API
------解决方案--------------------
JS是在浏览器执行的,用C# WebBrowser 这个类来访问PHP文件,因为WebBroswer这个类,用的是IE的内核。你可以理解为,IE就是用WebBrowser来写的,WebBrowser就是个小浏览器。或者你这个需求,是不需要JS的,C#可以定时访问一个PHP文件,这个PHP文件直接去数据库中搜索数据,有异常就调用发送邮件的代码,这样就不需要WebBrowser了。