zoukankan      html  css  js  c++  java
  • .NET HttpWebRequest POST form-data数据格式

      

    using System;
    
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
    
                #region http-post-fromData Test
    
                string reqUrl = "http://#################/oauth/token";
                System.Collections.Generic.Dictionary<string, string> parameters = new System.Collections.Generic.Dictionary<string, string>();
                parameters.Add("grant_type", "client_credentials");
                parameters.Add("client_id", "RDClient");
                parameters.Add("client_secret", "secret");
                System.Net.HttpWebRequest webRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(reqUrl);
                var boundary = "---------------" + DateTime.Now.Ticks.ToString("x"); // 边界符
                webRequest.Method = "POST";
                webRequest.Timeout = 60000;
                webRequest.ContentType = "multipart/form-data; boundary=" + boundary;
                var beginBoundary = System.Text.Encoding.ASCII.GetBytes("--" + boundary + "
    ");// 开始边界符
                var endBoundary = System.Text.Encoding.ASCII.GetBytes("--" + boundary + "--
    ");// 结束结束符
                var newLineBytes = System.Text.Encoding.UTF8.GetBytes("
    ");
                using (var stream = new System.IO.MemoryStream())
                {
                    stream.Write(beginBoundary, 0, beginBoundary.Length);// 写入开始边界符
    
                    // 写入字符串
                    var keyValue = "Content-Disposition: form-data; name="{0}"
    
    {1}
    ";
                    foreach (string key in parameters.Keys)
                    {
                        var keyValueBytes = System.Text.Encoding.UTF8.GetBytes(string.Format(keyValue, key, parameters[key]));
                        stream.Write(beginBoundary, 0, beginBoundary.Length);
                        stream.Write(keyValueBytes, 0, keyValueBytes.Length);
                    }
                    //写入结束边界符
                    stream.Write(endBoundary, 0, endBoundary.Length);
                    webRequest.ContentLength = stream.Length;
                    stream.Position = 0;
                    var tempBuffer = new byte[stream.Length];
                    stream.Read(tempBuffer, 0, tempBuffer.Length);
                    using (System.IO.Stream requestStream = webRequest.GetRequestStream())
                    {
                        requestStream.Write(tempBuffer, 0, tempBuffer.Length);
                        using (var response = webRequest.GetResponse())
                        using (System.IO.StreamReader httpStreamReader = new System.IO.StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8))
                        {
                            string strResponse = httpStreamReader.ReadToEnd();
                            //var obj = JsonConvert.DeserializeAnonymousType(strResponse, new { access_token = "" });
                            Console.WriteLine(strResponse);
    
                            Console.ReadKey();
                        }
                    }
    
                }
    
                #endregion
            }
        }
    }
  • 相关阅读:
    使用paramiko的问题记录
    python常见异常及解决方法
    linux ps -aux各列含义
    常用技能
    超时程序管理
    跨年的总结和展望
    java json和对象互转
    一些常用功能总结
    ResultSet转成java类对象
    python常用功能总结
  • 原文地址:https://www.cnblogs.com/suqifeng/p/14152024.html
Copyright © 2011-2022 走看看