推送的连接地址如:www.baidu.com

/// <summary>
        /// 提交数据
        /// </summary>
        /// <param name="msg">XML</param>
        /// <param name="info_Id">提交的INFO_ID</param>
        /// <param name="httpUrl">接收XML的地址</param>
        /// <param name="sqlconn">本地sql连接</param>
        /// <returns>返回结果</returns>
        public static string SendMsg(string msg, string info_Id, string httpUrl, string sqlconn)
        {
            string result = "";

            try
            {
                string url =  msg;

                string formUrl = httpUrl;
                if (string.IsNullOrEmpty(formUrl))
                    return "推送失败,Web.config配置为空";
                string formData = url;                               //提交的参数

                //注意提交的编码 这边是需要改变的 这边默认的是Default:系统当前编码
                byte[] postData = Encoding.UTF8.GetBytes(formData);

                // 设置提交的相关参数
                HttpWebRequest request = WebRequest.Create(formUrl) as HttpWebRequest;
                Encoding myEncoding = Encoding.UTF8;
                request.Method = "PUT";
                request.KeepAlive = false;
                request.Headers.Add("checksum",  System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(msg, "MD5"));
                request.AllowAutoRedirect = true;
                request.ContentType = "application/x-www-form-urlencoded";
                request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR  3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";
                request.ContentLength = postData.Length;

                // 提交请求数据
                System.IO.Stream outputStream = request.GetRequestStream();
                outputStream.Write(postData, , postData.Length);
                outputStream.Close();

          //返回数据
                HttpWebResponse response;
                Stream responseStream;
                StreamReader reader;
                string srcString;
                response = request.GetResponse() as HttpWebResponse;
                responseStream = response.GetResponseStream();
                reader = new System.IO.StreamReader(responseStream, Encoding.GetEncoding("UTF-8"));
                srcString = reader.ReadToEnd();
                result = srcString;   //返回值赋值
                reader.Close();
                if (!string.IsNullOrEmpty(result))
                {
                    try
                    {
                        XmlDocument M_XDoc = new XmlDocument();
                        M_XDoc.LoadXml(result);
                        XmlElement eName;
                        XmlNode M_Root = M_XDoc.SelectSingleNode("message/header");
                        string bizid = System.Configuration.ConfigurationManager.AppSettings["bizid"];//档案模块号获取
                        string _bizid = string.Empty;
                        ")
                            _bizid = (M_Root.SelectSingleNode("bizid")).InnerText;//档案号模块号获取

                        ")
                        {
                            result = "推送失败,失败原因:" + (M_Root.SelectSingleNode("memo")).InnerText + "  时间:" + (M_Root.SelectSingleNode("timestamp")).InnerText;
                        }
                        else
                        {

                            IsOK = true;
                            result = "档案模块号:" + _bizid + " 推送成功!";

                            OleDbConnection conn = new OleDbConnection(sqlconn);
                            conn.Open();
                            OleDbCommand cmd = new OleDbCommand("UPDATE G_INFOS SET WXISGD=1 WHERE ID=" + info_Id, conn);

                            cmd.ExecuteNonQuery();
                            conn.Close();
                            cmd.Dispose();
                        }
                    }
                    catch
                    {
                        result = "推送失败,解析失败,XML:" + result;
                    }
                }
                else
                    result = "推送失败,返回值为空!";

            }
            catch (Exception ex)
            {
                result = "推送失败,失败原因:" + ex.Message;
            }
            return result;
        }

推送XML的更多相关文章

  1. node.js解析微信消息推送xml格式加密的消息

    之前写过一个解密json格式加密的,我以为xml的和json的差不多,是上上个星期五吧,我的同事也是在做微信公众号里面的消息推送解密,发现好像只能使用xml加密格式的发送到服务器,我们去年也做过企业微 ...

  2. C#微信公众号开发系列教程五(接收事件推送与消息排重)

    微信公众号开发系列教程一(调试环境部署) 微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) C#微信公众号开发系列教程三(消息体签名及加解密) C ...

  3. C#微信公众号开发系列教程(接收事件推送与消息排重)

    微信服务器在5秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次.这样的话,问题就来了.有这样一个场景:当用户关注微信账号时,获取当前用户信息,然后将信息写到数据库中.类似于pc端网站的注册.可 ...

  4. 微信公众号开发C#系列-7、消息管理-接收事件推送

    1.概述 在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信息.其中,某些事件推送在发生后,是允许 ...

  5. 转:C#微信公众号开发之接收事件推送与消息排重的方法

    本文实例讲述了C#微信公众号开发之接收事件推送与消息排重的方法.分享给大家供大家参考.具体分析如下: 微信服务器在5秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次.这样的话,问题就来了.有这 ...

  6. 友盟消息推送和更新XML配置

    <receiver android:name="com.umeng.message.NotificationProxyBroadcastReceiver" android:e ...

  7. Android 几种消息推送方案总结

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6241354.html 首先看一张国内Top500 Android应用中它们用到的第三方推送以及所占数量: 现 ...

  8. Mosquitto搭建Android推送服务(一)MQTT简介

    总体概要: MQTT系列文章分为4部分 1.MQTT简介 2.mosquitto服务器搭建 3.编写Mosquitto的可视化工具 4.使用Mosquitto完成Android推送服务 文章钢要: 对 ...

  9. 【DWR系列02】-DWR逆向Ajax即服务器推送

    .literal { background-color: #f2f2f2; border: 1px solid #cccccc; padding: 1px 3px 0; white-space: no ...

随机推荐

  1. 使用jQuery清空file文件域的解决方案(转)

    对一个文件域(input type=file)使用了验证后,我们总会希望把文件域中的值给清空了,在IE中,由于安全设置的原因,是不允许更改文件域的值的(也就是不能使用val("") ...

  2. 安卓:drawable

    <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http: ...

  3. namke 命令行编译

    简介 大家已经习惯于微软提供的功能强大的IDE,已经很少考虑手动编连项目了,所谓技多不压身,有空的时候还是随我一块了解一下命令行编译. C/C++/VC++程序员或有Unix/Linux编程经验应该很 ...

  4. SQLSERVER | 查询数据库中所有的表的名字 | 查询数据库中的所有数据库名

    SQLSERVER 1.查询某个数据库中所有的表名:  SELECT Name FROM SysObjects Where XType='U' ORDER BY Name 2.查询数据库中的所有数据库 ...

  5. zookeeper节点失效重连机制

    http://www.blogjava.net/xylz/archive/2011/12/05/365578.html http://blog.csdn.net/tswisdom/article/de ...

  6. oracle net manager的配置文件tnsnames.ora位置

    配置文件所在的路径:C:\app\Ling-PC\product\11.2.0\client_1\network\admin     (红色为安装的盘符位置)

  7. Java反射得到属性的值和设置属性的值(转)

    package com.whbs.bean; public class UserBean { private Integer id; private int age; private String n ...

  8. SQL:将字符串以特定字符分割并返回Table

    split 语法 ALTER FUNCTION [dbo].[F_SPLIT] ( @str VARCHAR(MAX) , ) ) /********************************* ...

  9. IIS中使用LocalDB遇到错误:error 50,Local Database Runtime error occurred.的解决办法

    参见: [1] http://www.cnblogs.com/yjmyzz/archive/2009/10/26/1590033.html [2] http://blogs.msdn.com/b/sq ...

  10. 常用JS汇总

    01. 取文档url参数值 function getQueryString(name) { var reg = new RegExp("(^|&)" + name + &q ...