asp.net 自定义 Http Post,Get,WebClient ,TcpClient 请求url地址

/// <summary>
        /// 发生post请求
        /// </summary>
        /// <param name="Url"></param>
        /// <param name="postDataStr"></param>
        /// <returns></returns>
        public static string HttpPost(string Url, string postDataStr)
        {
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
                request.Method = "POST";
                request.ContentType = "application/x-www-form-urlencoded";
                request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);


                Stream myRequestStream = request.GetRequestStream();
                StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
                myStreamWriter.Write(postDataStr);
                myStreamWriter.Close();




                HttpWebResponse response = (HttpWebResponse)request.GetResponse();


                Stream myResponseStream = response.GetResponseStream();
                StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
                string retString = myStreamReader.ReadToEnd();
                myStreamReader.Close();
                myResponseStream.Close();


                return retString;
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
        }


        /// <summary>
        /// 发生get请求
        /// </summary>
        /// <param name="Url"></param>
        /// <param name="postDataStr"></param>
        /// <returns></returns>
        public static string HttpGet(string Url, string getDataStr)
        {
            //ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + (getDataStr == "" ? "" : "?") + getDataStr);
            request.Method = "GET";
            request.ContentType = "text/html;charset=utf-8";


            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
            string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();


            return retString;

        }



    public static string sendHttp(string WebUrl, string CEncoding)
        {
            WebClient myClient = new WebClient();
            myClient.Headers.Add("Accept: */*");
            myClient.Headers.Add("User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET4.0E; .NET4.0C; InfoPath.2; .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; SE 2.X MetaSr 1.0)");
            myClient.Headers.Add("Accept-Language: zh-cn");
            myClient.Headers.Add("Content-Type: multipart/form-data");
            myClient.Headers.Add("Accept-Encoding: gzip, deflate");
            myClient.Headers.Add("Cache-Control: no-cache");
            return Encoding.GetEncoding(CEncoding).GetString(myClient.DownloadData(string.Format(WebUrl)));
        }


   

    public static string Call(string url)
    {
        string ret = "{\"ok\":101,\"msg\":\"net err\"}";
        TcpClient clientSocket = null;
        Stream readStream = null;
        try
        {
            clientSocket = new TcpClient();
            Uri uri = new Uri(url);
            clientSocket.Connect(uri.Host, uri.Port);
            StringBuilder RequestHeaders = new StringBuilder();//用来保存HTML协议头部信息
            RequestHeaders.Append("GET ").Append(uri.PathAndQuery).Append(" HTTP/1.1\r\n");
            RequestHeaders.Append("Host:").Append(uri.Host).Append("\r\n");
            RequestHeaders.Append("User-Agent:ycweb\r\n"); // "Accept:*/*\r\nAccept-Language:zh-cn\r\n"
            RequestHeaders.Append("Connection:close\r\n\r\n");


            // 发送
            byte[] request = Encoding.UTF8.GetBytes(RequestHeaders.ToString());
            clientSocket.Client.Send(request);


            // 接收
            readStream = clientSocket.GetStream();
            StreamReader sr = new StreamReader(readStream, Encoding.UTF8);
            string l;


            // 读取头
            for (int i=0; i<100; ++i)
            {
                l = sr.ReadLine();
                if (l == null)
                    break;
                if (l.Length == 0)
                    break;
            }


            // 读取内容
            ret = sr.ReadToEnd();
        }catch
        {
        }
        // 关闭流
        if (readStream != null)
            readStream.Close();
        if (clientSocket != null)
            clientSocket.Close();
        return ret;
    }

  

/// <summary>
        /// 拟远程HTTP的POST请求方式构造并获取处理结果
        /// </summary>
        /// <param name="GATEWAY_NEW">支付宝网关地址</param>
        /// <param name="sParaTemp">请求参数数组</param>
        /// <returns>处理结果</returns>
        public static string PostRequest(string url, string param,string encode)
        {
            Encoding code = Encoding.GetEncoding(encode);


            //待请求参数数组字符串
            string strRequestData =param;


            //把数组转换成流中所需字节数组类型
            byte[] bytesRequestData = code.GetBytes(strRequestData);


            //构造请求地址
            string strUrl = url;


            //请求远程HTTP
            string strResult = "";
            try
            {
                //设置HttpWebRequest基本信息
                HttpWebRequest myReq = (HttpWebRequest)HttpWebRequest.Create(strUrl);
                myReq.Method = "post";
                myReq.ContentType = "application/x-www-form-urlencoded";


                //填充POST数据
                myReq.ContentLength = bytesRequestData.Length;
                Stream requestStream = myReq.GetRequestStream();
                requestStream.Write(bytesRequestData, 0, bytesRequestData.Length);
                requestStream.Close();


                //发送POST数据请求服务器
                HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse();
                Stream myStream = HttpWResp.GetResponseStream();


                //获取服务器返回信息
                StreamReader reader = new StreamReader(myStream, code);
                StringBuilder responseData = new StringBuilder();
                String line;
                while ((line = reader.ReadLine()) != null)
                {
                    responseData.Append(line);
                }


                //释放
                myStream.Close();


                strResult = responseData.ToString();
            }
            catch (Exception exp)
            {
                strResult = "报错:" + exp.Message;
            }


            return strResult;
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值