zoukankan      html  css  js  c++  java
  • c#POST请求和接收post请求

    c# 以post方式发送数据
    
    ///
    <summary> /// POST请求 /// </summary> /// <param name="url">请求地址</param> /// <param name="val">请求值</param> /// <param name="encoding">编码格式</param> /// <returns></returns> public string GetHttpPostResponse(string url, string val, Encoding encoding) { string strResult = string.Empty; try { HttpWebRequest myReq = (HttpWebRequest)HttpWebRequest.Create(url); myReq.Method = "Post"; myReq.ContentType = "application/x-www-form-urlencoded"; byte[] byteArray = encoding.GetBytes(val); myReq.ContentLength = byteArray.Length; Stream stream = myReq.GetRequestStream(); stream.Write(byteArray, 0, byteArray.Length); stream.Close(); HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse(); Stream myStream = HttpWResp.GetResponseStream(); StreamReader sr = new StreamReader(myStream, encoding); strResult = sr.ReadToEnd(); } catch{} return strResult; }

     如果数据量过大,则建议使用流的方式

    方法如下

    byte[] bytes=null;
                if(sType=="2")
                {
                    bytes= Encoding.UTF8.GetBytes(sb.ToString());
                }
                else
                {
                    bytes= Encoding.UTF8.GetBytes(sbd.ToString());
                }
                bool b =PostBaitourZrateModel(strurl,bytes);

    PostBaitourZrateModel

    /// <summary>
            /// POST数据得到结果
            /// </summary>
            /// <param name="strUrl">URL</param>
            /// <param name="strParm">参数</param>
            /// <returns>string</returns>
            private static bool PostBaitourZrateModel(string strUrl, byte[] strParm)
            {
                StringBuilder str = new StringBuilder();
                bool isRec = false;
                try
                {
                    Encoding encode = System.Text.Encoding.UTF8;
                    HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(strUrl);
                    myReq.Timeout = 900000;
                    myReq.Method = "POST";
                    myReq.ContentType = "multipart/form-data";
                    myReq.ContentLength = strParm.Length;
                    myReq.AllowWriteStreamBuffering = false;
                    Stream outStream = myReq.GetRequestStream();
                    outStream.Write(strParm, 0, strParm.Length);
                    outStream.Close();
                    WebResponse myResp = null;
                    myResp = myReq.GetResponse();
                    Stream ReceiveStream = myResp.GetResponseStream();
                    StreamReader readStream = new StreamReader(ReceiveStream, encode);
                    Char[] read = new Char[256];
                    int count = readStream.Read(read, 0, 256);
    
                    while (count > 0)
                    {
                        str.Append(new String(read, 0, count));
                        count = readStream.Read(read, 0, 256);
                    }
                    readStream.Close();
                    myResp.Close();
                    if (str.ToString().ToUpper().IndexOf("SUCCESS") >= 0)
                    {
                        isRec = true;
                    }
                }
                catch (Exception ex)
                {
                    isRec = false;
                    new Error().WriteFilesErrorLog(ex.Message,"12580消息通知");
                }
    
                return isRec;
            }

     C#接收post请求的数据

        private string PostInput()
            {
                try
                {
                    System.IO.Stream s = Request.InputStream;
                    int count = 0;
                    byte[] buffer = new byte[1024];
                    StringBuilder builder = new StringBuilder();
                    while ((count = s.Read(buffer, 0, 1024)) > 0)
                    {
                        builder.Append(Encoding.UTF8.GetString(buffer, 0, count));
                    }
                    s.Flush();
                    s.Close();
    
    
                    return builder.ToString();
                }
                catch (Exception ex)
                { throw ex; }
            }
  • 相关阅读:
    two pointers思想 ---- 利用两个i, j两个下标,同时对序列进行扫描,以O(n)复杂度解决问题的一种思想
    二分法
    区间贪心
    error C2825: '_Iter': 当后面跟“::”时必须为类或命名空间 -- 原因可能是参数错误或者自定义函数名和库函数名冲突
    模态窗口的定时关闭
    数据结构(二十二)二叉树遍历算法的应用与二叉树的建立
    数据结构(二十一)二叉树的非递归遍历算法
    数据结构(二十)二叉树的递归遍历算法
    数据结构(十九)二叉树的定义和性质
    数据结构(十八)树的定义与存储结构
  • 原文地址:https://www.cnblogs.com/honghong75042/p/3152340.html
Copyright © 2011-2022 走看看