我是靠谱客的博主 跳跃睫毛,这篇文章主要介绍ASP.NET 调用POST请求把数据传到指定URL上,适合跨域操作,现在分享给大家,希望可以做个参考。

可以信息写到一个方法体内,进行动态的调用,以下我把主要的代码发布出来:


  #region 调用POST请求把数据传到指定URL上



                                        Hashtable headers = new Hashtable();
                                        headers.Add("Test", 1); //测试时test=1 正常上线用什么
                                        headers.Add("OrderID", m_szOrderID);
                                        headers.Add("AcctNo", m_szAcctNo);
                                        headers.Add("OLDOrderID", m_szUserData3);
                                        headers.Add("PGTxnID", m_szPGTxnID);


                                        string JKReturn = "";


                                        oLog.Log(0, "进行第一次请求,JikeUrl: " + JikeUrl); //jikeurl自定义 
                                        JKReturn = UrlPost(JikeUrl, headers);
                                        oLog.Log(0, "进行第一次请求结束,返回值=" + JKReturn);


                                        if (JKReturn.Contains("success"))
                                        {
                                            oLog.Log(0, " 数据已发送成功,返回值为=" + JKReturn);
                                            //结束请求
                                        }
                                        else
                                        {
                                            oLog.Log(0, "进行第二次请求,JikeUrl: " + JikeUrl);
                                            JKReturn = UrlPost(JikeUrl, headers);//jikeurl自定义 
                                            oLog.Log(0, "进行第二次请求结束,返回值=" + JKReturn);
                                        }


                                        #endregion

----------------------------------------------------

  #region POST 请求


        /// <summary>
        ///  POST 请求
        /// </summary>
        /// <param name="url">请求URL</param>
        /// <param name="headers">请求参数</param>
        /// <returns></returns>
        public string UrlPost(string url, Hashtable headers)
        {
            string backstr = "";


            try
            {
                //建立WebRequest对象,url目标地址
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                 
                //将LoginInfo转换为byte[]格式,这里的LoginInfo应该是你要传输的数据
                byte[] requestBytes = System.Text.Encoding.ASCII.GetBytes(SetHttpRequests(headers));
                //设置请求为POST方式,
                req.Method = "POST";
                //设置请求类型
                req.ContentType = "application/x-www-form-urlencoded";
                //请求发送的数据长度, 这里就很清楚了,请求数据是从LoginInfo转换来的
                //前面的代码byte[] requestBytes = System.Text.Encoding.ASCII.GetBytes(LoginInfo);
                req.ContentLength = requestBytes.Length;
                //建立请求的输入流
                Stream requestStream = req.GetRequestStream();
                //从requestBytes中读取数据到输入流中
                requestStream.Write(requestBytes, 0, requestBytes.Length);
                //关闭输入流
                requestStream.Close();
                //获取响应对象
                HttpWebResponse res = (HttpWebResponse)req.GetResponse();
                //获取服务器返回流
                StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.Default);
                //读取返回流数据,并赋值给backstr 
                backstr = sr.ReadToEnd();
                //页面输出line???? 应该是backstr 吧
                //Response.Write(line);
                //关闭* 2, 不解释了
                sr.Close();
                res.Close();


            }
            catch (Exception)
            {




            }
            return backstr;
        }


        #region 页面提示信息
        /// <summary>
        /// 页面返回结果
        /// </summary>
        /// <param name="value"></param>
        public void Pageshowtext(string value)
        {
            Response.Clear();
            Response.Write("" + value + "");
            Response.Flush();
            Response.End();
        }
        #endregion


        /// <summary>
        /// 将数据转化
        /// </summary>
        /// <param name="headers"></param>
        /// <returns></returns>
        private string SetHttpRequests(Hashtable headers)
        {
            string s = "";
            foreach (DictionaryEntry objDE in headers)
            {
                try
                {
                    string strKey = objDE.Key.ToString();
                    string strValue = objDE.Value.ToString();
                    //"p1=x&p2=y&p3=测试的中文";
                    s += strKey + "=" + strValue + "&";
                }
                catch (Exception ex)
                {
                    // m_oLogger.Log(m_szLogLevel, "SetHttpRequests ; Exception " + ex.Message);
                }
            }
            s = s.Substring(0, s.Length - 1);


            return s;
        }
        #endregion

最后

以上就是跳跃睫毛最近收集整理的关于ASP.NET 调用POST请求把数据传到指定URL上,适合跨域操作的全部内容,更多相关ASP.NET内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(154)

评论列表共有 0 条评论

立即
投稿
返回
顶部