• HttpWebRequest post提交XMl参数请求,


    public string StartPing(string pingURL)//改为一个传参数URL
    {
    StreamReader sr = null;
    StringBuilder sb = new StringBuilder();
    string strOutput = string.Empty;
    string strXML = string.Empty;
    try
    {
    //HttpUtility.HtmlEncode
    strXML = BuildXML();
    int len = strXML.Length;
    ASCIIEncoding ascii = new ASCIIEncoding();
    HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(pingURL);
    webReq.Method = "POST";
    webReq.Timeout = 3000;//超时为3秒
    webReq.ContentType = "text/xml"; 
    //string contenttype = "application/x-www-form-urlencoded";//更网站该方法支持的类型要一致
    webReq.Credentials = CredentialCache.DefaultNetworkCredentials;
    webReq.ContentLength = len;
    
    Stream streamRequest = webReq.GetRequestStream();
    byte[] bt = ascii.GetBytes(strXML);
    streamRequest.Write(bt, 0, len);
    HttpWebResponse webRes = (HttpWebResponse)webReq.GetResponse();
    
    sr = new StreamReader(webRes.GetResponseStream(), Encoding.ASCII);
    string ret = sr.ReadToEnd();
    sb.AppendLine("\n");
    sb.AppendLine(ret);
    
    if (ret.IndexOf("<boolean>0</boolean>") >= 0)
    {
    sb.AppendLine("\n\t 服务提交成功!");
    }
    else if (ret.IndexOf("<boolean>1</boolean>") >= 0)
    {
    sb.AppendLine("\n\t 服务提交失败!");
    }
    if (sr != null)
    {
    sr.Close();
    }
    }
    catch (Exception ex)
    {
    sb.AppendLine(ex.Message);
    sb.AppendLine(ex.StackTrace);
    }
    finally
    {
    strOutput = sb.ToString();
    if (sr != null)
    {
    sr.Dispose();
    }
    }
    return strOutput;
    }
    
    private string BuildXML()
    {
    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    sb.Append("<?xml version=\"1.0\"?>");
    sb.Append("<params>");
    sb.AppendFormat("<title>{0}", "公告标题");
    sb.Append("</title>");
    sb.AppendFormat("<content>{0}", "公告内容,base64加密的");
    sb.Append("</content>");
    
    sb.Append("<verify=be10c510b5f4f082dbd4268820cde895>");
    
    sb.Append("</params>");
    return sb.ToString();
    }
    

      

    下面是服务器端接收请求方法:

    加载事件里:
    //对应方法StartPing
                byte[] byts = new byte[Request.InputStream.Length];
                Request.InputStream.Read(byts, 0, byts.Length);
                string req = System.Text.Encoding.Default.GetString(byts);
                req = Server.UrlDecode(req);
                //下面是接收到的内容
                //<?xml version="1.0"?><params><title>????</title><content>?????base64???</content><verify=be10c510b5f4f082dbd4268820cde895></params>
                */
    

      

  • 相关阅读:
    如何在windows下安装GIT
    TortoiseGit 安装
    高并发大流量专题---3、前端优化(减少HTTP请求次数)
    高并发大流量专题---2、流量优化(防盗链处理)
    高并发大流量专题---1、高并发大流量解决方案总结
    yii2和laravel比较
    php开发面试题---日常面试题1
    php开发面试题---禁用cookie之后,如何使用session
    剑指offer---4、序列化二叉树
    北风设计模式课程---20、UML类图介绍
  • 原文地址:https://www.cnblogs.com/soundcode/p/2966268.html
Copyright © 2020-2023  润新知