解决方案 »

  1.   

    我测试用的代码,已经可用,你拿去参考吧
    <%@ WebHandler Language="C#" Class="weixininterface" %>using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    using System.Web.UI.HtmlControls;
    using System.IO;public class weixininterface : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";        //context.Response.Write(context .Request .QueryString ["echostr"]); 
            //context.Response.Write("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
            //context.Response.Write("<XML>");
            //context.Response.Write(context .Request .Params ["aa"]);
            //context.Response.Write("</XML>"); 
            // context.Response.Write("Hello World");        var inputStream = context.Request.InputStream;
            var strLen = Convert.ToInt32(inputStream.Length);
            var strArr = new byte[strLen];
            inputStream.Read(strArr, 0, strLen);
            string  requestMes = System.Text.Encoding.UTF8.GetString(strArr);
            string ToUserName, FromUserName, CreateTime, sendMsg, rtnMsg;
            string[] temp;
                temp =requestMes .Split (new char[2]{'[',']'});
            ToUserName =temp [2];
            FromUserName = temp[6];
            sendMsg =temp [14];
            rtnMsg = "现在是测试,所有内容都是由架设在szd的服务器发出,可以接受的输入有:\n 1 当前时间 \n 2 \n   3";
            if (sendMsg == "1")
            {
                rtnMsg = "现在时间是"+DateTime .Now .ToString();        }
            if (sendMsg == "2")
            {
                rtnMsg = "你输入的是2 二";        }
            if (sendMsg == "3")
            {
                rtnMsg = "你输入的是3 三";        }
            string rtn = "<xml><ToUserName><![CDATA[" + FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + ToUserName + "]]></FromUserName> <CreateTime>1369287835</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA["+rtnMsg+"]]></Content> <FuncFlag>0</FuncFlag> </xml>";
            System.IO.FileStream fs = new FileStream("C:\\inetpub\\wwwrootaaa.txt", FileMode.Create);
            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine(ToUserName);
            sw.WriteLine(FromUserName);
            sw.WriteLine(sendMsg);
            // sw.WriteLine(s2);
            sw.Close();
            fs.Close();
            context.Response.Write(rtn);    }    public bool IsReusable
        {
            get
            {
                return false;
            }
        }}
      

  2.   

    顶一下。最近需要做这个。Marker
      

  3.   

    错了·~~
    你的content没有设置类型吧?
     string MsgType1 = MsgType.InnerText;        if (MsgType1 == "text")
            {
             content = Query(content);
            //组织xml回复
            string strresponse = "<xml>";
            strresponse = strresponse + "<ToUserName><![CDATA[" + FromUserName + "]]></ToUserName>";
            strresponse = strresponse + "<FromUserName><![CDATA[" + ToUserName + "]]></FromUserName>";
            strresponse = strresponse + "<CreateTime>" + DateTime.Now.Ticks.ToString() + "</CreateTime>";
            strresponse = strresponse + "<MsgType><![CDATA[text]]></MsgType>";
            strresponse = strresponse + "<Content><![CDATA[" + content + "]]></Content>";
            strresponse = strresponse + "<FuncFlag>0<FuncFlag>";
            strresponse = strresponse + "</xml>";
            Response.Write(strresponse);
            }