• http协议的POST传数据


    PostRequest使用StreamWriter对象写入请求流,不需要使用HttpUtility.UrlEncode显示转码,而下面的需要显示转码,还需要将参数转为字节码

    蛋疼…………。

    public static string PostRequest(string url, string postData)
    {
    HttpWebRequest httpWebRequest = System.Net.WebRequest.Create(url) as HttpWebRequest;
    httpWebRequest.Method = "POST";
    httpWebRequest.ServicePoint.Expect100Continue = false;
    httpWebRequest.ContentType = "application/x-www-form-urlencoded";

    //写入POST参数
    StreamWriter requestWriter = new StreamWriter(httpWebRequest.GetRequestStream());
    try
    {
    requestWriter.Write(postData);
    }
    finally
    {
    requestWriter.Close();
    }

    //读取请求后的结果
    StreamReader responseReader = null;
    string responseData;
    try
    {
    responseReader = new StreamReader(httpWebRequest.GetResponse().GetResponseStream());
    responseData = responseReader.ReadToEnd();
    }
    finally
    {
    httpWebRequest.GetResponse().GetResponseStream().Close();
    responseReader.Close();
    }
    return responseData;
    }
    #endregion


    public static string HttpPostWebService(string url, string method, string num1)
    {
    string result = string.Empty;
    string param = string.Empty;
    byte[] bytes = null;

    Stream writer = null;
    HttpWebRequest request = null;
    HttpWebResponse response = null;

    param = HttpUtility.UrlEncode("name") + "=" + HttpUtility.UrlEncode(num1) ;
    bytes = Encoding.UTF8.GetBytes(param);

    request = (HttpWebRequest)WebRequest.Create(url + "/" + method);
    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = bytes.Length;

    try
    {
    writer = request.GetRequestStream(); //获取用于写入请求数据的Stream对象
    }
    catch (Exception ex)
    {
    return "";
    }

    writer.Write(bytes, 0, bytes.Length); //把参数数据写入请求数据流
    writer.Close();

    try
    {
    response = (HttpWebResponse)request.GetResponse(); //获得响应
    }
    catch (WebException ex)
    {
    return "";
    }

    //#region 这种方式读取到的是一个返回的结果字符串
    //Stream stream = response.GetResponseStream(); //获取响应流
    //XmlTextReader Reader = new XmlTextReader(stream);
    //Reader.MoveToContent();
    //result = Reader.ReadInnerXml();
    //#endregion

    #region 这种方式读取到的是一个Xml格式的字符串
    StreamReader reader;
    Stream stream = response.GetResponseStream();
    reader = new StreamReader(stream, Encoding.UTF8);
    result = reader.ReadToEnd();
    #endregion

    //response.Dispose();
    response.Close();

    //reader.Close();
    //reader.Dispose();

    //Reader.Dispose();
    reader.Close();

    //stream.Dispose();
    stream.Close();

    return result;
    }

  • 相关阅读:
    angular打包出现JavaScript堆内存不足
    antDesign 【NG-ZORRO、Angular】日期选择框时间段nz-range-picker设置默认选择日期及限制日期可选范围
    Echarts 折线图Demo调色12种,可以直接使用~~~
    公司版git完整版
    Linux实例重启服务器后root用户远程连接失败
    Flask+Redis+mq实现高并发
    Dockerfile
    Docker应用部署
    RabbitMQ 实现实现基本通信及订单处理
    centos 7 安装docker的文档参考
  • 原文地址:https://www.cnblogs.com/boentouch/p/9995935.html
Copyright © 2020-2023  润新知