zoukankan      html  css  js  c++  java
  • post&get请求总结

    1.将get获取的数据,UrlDecode后返回

    public static string SendGet(string url)
    {
      HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
      httpWebRequest.Method = "GET";
      HttpWebResponse httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse;
      Stream stream = httpWebResponse.GetResponseStream();
      StreamReader streamReader = new StreamReader(stream, Encoding.UTF8);
      string strOut = streamReader.ReadToEnd();
      httpWebResponse.Close();
      strOut = HttpUtility.UrlDecode(strOut);
      return strOut;
    }

    2.post请求,StreamReader方法获取ResponseStream中的信息

    public static string SendPost(string data, string url, string contentType)
    {
      string content = string.Empty;
      HttpWebRequest httpWebRequest = WebRequest.Create(url) as HttpWebRequest;
      httpWebRequest.AllowAutoRedirect = true;
      httpWebRequest.Method = "POST";
      httpWebRequest.ContentType = contentType;
      using (StreamWriter sw = new StreamWriter(httpWebRequest.GetRequestStream()))
      {
        sw.Write(data);
      }
      HttpWebResponse httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse;
      using (StreamReader sr = new StreamReader(httpWebResponse.GetResponseStream()))
      {
        content = sr.ReadToEnd();
      }
      return content;
    }

    3.post请求,通过Stream.Read方法获取ResponseStream中的信息

     public static String RequestUrl(String url, byte[] data, String method = "POST")
     {
         try
         { 
           WebRequest request = WebRequest.Create(url);
            request.Method = method;
            request.ContentType = "application/x-www-form-urlencoded"; 
            if (data != null && data.Length > 0)
            {
                request.ContentLength = data.Length;
                Stream newStream = request.GetRequestStream();
                newStream.Write(data, 0, data.Length);
                newStream.Close();
            }
            else
            {
                request.ContentLength = 0;
            }
            WebResponse response = request.GetResponse();
            Stream stream = response.GetResponseStream();
            MemoryStream ms = new MemoryStream();
            long ChunkSize = 1024;
            byte[] buffer = new byte[ChunkSize];
            long dataLengthToRead = response.ContentLength;//获取响应数据的总大小
            while (dataLengthToRead > 0)
            {
                int lengthRead = stream.Read(buffer, 0, Convert.ToInt32(ChunkSize));//读取的大小
                ms.Write(buffer, 0, lengthRead);
                dataLengthToRead = dataLengthToRead - lengthRead;
            }
            stream.Close();
            response.Close(); 
            string responseText = Encoding.UTF8.GetString(ms.ToArray());
            return responseText; 
        }
        catch (Exception ex)
        {
            return ex.Message;
        }
    }
  • 相关阅读:
    Android Studio 2.3.1导出jar文件不能生成release解决办法
    AndroidStudio 3.0 生成jar包的方法
    Android Studio如何打jar包
    Android Studio 如何打JAR包(修订版)
    6款程序员必备的开源中文处理工具
    Qt5.8 下链接 Mysql 错误以及解决方法(无论 Mysql 是什么版本的,64 位 Qt 要用 64 位的 Mysql 驱动,32 位的 Qt 要用 32 位的Mysql 驱动)
    Go 语言如果按这样改进,能不能火过 Java?
    基于 CSP 的设计思想和 OOP 设计思想的异同
    DELPHI下多线程编程的几个思维误区(QDAC)
    如何使用表单
  • 原文地址:https://www.cnblogs.com/slu182/p/4250883.html
Copyright © 2011-2022 走看看