最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中的multipart/form-data提交文件和參數(shù)

 更新時(shí)間:2022年06月09日 09:18:49   作者:qq_34611658  
這篇文章主要介紹了C#中的multipart/form-data提交文件和參數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

C# multipart/form-data提交文件和參數(shù)

 public static string PostJsonData(string url, Dictionary<string, string> dic, string imgfile)
        {       
       string str = "";
            try
            {
                HttpClient client = new HttpClient();
                var postContent = new MultipartFormDataContent();
                string boundary = string.Format("--{0}", DateTime.Now.Ticks.ToString("x"));
                postContent.Headers.Add("ContentType", $"multipart/form-data, boundary={boundary}");
               string image_file_Type="faceImage";
                postContent.Add(new ByteArrayContent(File.ReadAllBytes(imgfile)), image_file_Type, imgfile);
                foreach (var key in dic.Keys)
                {
                    postContent.Add(new StringContent(dic[key].ToString()), key);
                }
                HttpResponseMessage response = client.PostAsync(url, postContent).Result;
                str = response.Content.ReadAsStringAsync().Result;
                
            }
            catch (Exception ex)
            {
                Log.Print("PostJsonData:" + ex.ToString());
            }
            return str;
  }

C# POST multipart/form-data案例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using XingcOpen.ILS.Business.Interface;
using XingcOpen.ILS.Core.Model;
using XingcOpen.ILS.Core.Log;
using XingcOpen.ILS.Business.Config.Module;
using XingcOpen.ILS.Business.Config;
using System.Threading;
using System.IO;
using Newtonsoft.Json.Linq;
using System.Net.Http.Headers;
using Newtonsoft.Json;
using System.Windows.Forms;
namespace XingcOpen.ILS.Business.ExpressSystemApi.Client
{
    /// <summary>
    /// 韓國(guó)圖片上報(bào)接口
    /// </summary>
    class HanGuoLogisticsPic : ISendPackageInfo
    {
        public bool CheckProcessHasRun()
        {
            throw new NotImplementedException();
        }
        UserConfigInfo config = UserConfigHelper.GetInstance().userConfig;
        private static object _loc = new object();
        private Thread DSuPicUpload;
        public bool CheckTicketNumHasEffective(string ticketsNum)
        {
            throw new NotImplementedException();
        }
        public CommonResult GeneralSendTicketsNumAndPackageWeight(TicketInfo info)
        {
            throw new NotImplementedException();
        }
        public bool SendTicketsNumAndPackageWeight(string barcode, double weight, double length, double width, double height, double volume)
        {
            //定義圖片絕對(duì)路徑
            //var ListImage = config.PicSavePath + @"\" + DateTime.Now.ToString("yyyyMMdd") + @"\" + barcode + ".jpg";
            try
            {
                圖片上傳
                DSuPicUpload = new Thread(() => UploadPic(barcode));
                DSuPicUpload.Start();
                return true;
            }
            catch (Exception ex)
            {
                Logger<HanGuoLogisticsPic>.Error("線程啟動(dòng)異常," + ex.Message);
                return false;
            }
        }
        public T SendTicketsNumAndPackageWeight<T>(Dictionary<string, object> packageDic)
        {
            throw new NotImplementedException();
        }
        #region 圖片上報(bào)接口
        private void UploadPic(string barcode)
        {
            while (true)
            {
                if (config.IsSavePic == 1)
                {
                    //上傳圖片
                    DoLocalImgUpload(Path.Combine(config.PicSavePath, DateTime.Now.ToString("yyyyMMdd")), barcode);
                    DoLocalImgUpload(Path.Combine(config.PicSavePath, DateTime.Now.AddDays(-1).ToString("yyyyMMdd")), barcode);
                }
                Thread.Sleep(3000);
            }
        }
        public void DoLocalImgUpload(string picFilepath, string barcode)
        {
            try
            {
                if (Directory.Exists(picFilepath))
                {
                    DirectoryInfo directoryInfo = new DirectoryInfo(picFilepath);
                    //取圖片文件夾下的1分鐘之前的圖片的前5張(按創(chuàng)建時(shí)間排序)
                    //防止文件被占用
                    lock (_loc)
                    {
                        var topfiles = directoryInfo.EnumerateFiles().
                        Where(p => p.CreationTime <= DateTime.Now.AddMinutes(-1)).
                        OrderBy(f => f.CreationTime).
                        Take(5).ToList();
                        //  topfiles.Distinct();
                        topfiles.OrderByDescending(x => x.FullName).Distinct();
                        if (topfiles.Count > 0)
                        {
                            //循環(huán)執(zhí)行上傳
                            foreach (var fileInfo in topfiles)
                            // for (var i = 0; i < topfiles.Count; i++)
                            {
                                Logger<HanGuoLogisticsPic>.Debug("topfiles.count:" + topfiles.Count + "  fileInfo:" + fileInfo.FullName);
                                UploadLocalByName(fileInfo.FullName, barcode);
                                //topfiles.Remove(fileInfo);
                            }
                            topfiles.Clear();
                            Thread.Sleep(1000);
                            Logger<HanGuoLogisticsPic>.Debug("圖片上傳線程循環(huán)上傳中!");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger<HanGuoLogisticsPic>.Error(".圖片文件上傳發(fā)生異常!", ex);
            }
        }
        public void UploadLocalByName(string picFilepath, string barcode)
        {
            string url = @"http://www.kwaiden.com/SendPackageInfo/ApiPhoto_I.asp";
            try
            {
                Logger<HanGuoLogisticsPic>.Debug("picFilepath:" + picFilepath);
                if (File.Exists(picFilepath))
                {
                    int pos = picFilepath.LastIndexOf("\\");
                    string name = picFilepath.Substring(pos + 1);
                    string nums = name.Replace(".jpg", "");
                    //string userPhoto = string.Empty;
                    //byte[] bytes = File.ReadAllBytes(picFilepath);
                    //userPhoto = Convert.ToBase64String(bytes);
                    //userPhoto = userPhoto.Replace("+", "%2B");
                    if (UploadImages(nums, name, picFilepath, url, barcode))
                    {
                        //上傳完是否需要?jiǎng)h除?
                        File.Delete(picFilepath);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger<HanGuoLogisticsPic>.Error(".圖片文件上傳發(fā)生異常!", ex);
            }
        }
        public bool UploadImages(string code, string name, string picFilepath, string url, string barcode)
        {
            try
            {
                string result = SendData(picFilepath, name, url, barcode, null, null);
                var i = JObject.Parse(result);
                if (i["result"].ToString().Trim() == "true")
                {
                    //播放聲音文件
                    string strPath = Path.Combine(Application.StartupPath, @"config\sound") + "\\" + "Right.wav";
                    if (File.Exists(strPath))
                    {
                        System.Media.SoundPlayer sndPlayer2 = new System.Media.SoundPlayer(strPath);
                        sndPlayer2.Play();
                    }
                    else
                    {
                        Logger<HanGuoLogistics>.Error("PlaySoundSendSuccess。 不存在聲音文件:" + strPath);
                    }
                    return true;
                }
                else
                {
                    //播放聲音文件
                    string strPath = Path.Combine(Application.StartupPath, @"config\sound") + "\\" + "Wrong.wav";
                    if (File.Exists(strPath))
                    {
                        System.Media.SoundPlayer sndPlayer2 = new System.Media.SoundPlayer(strPath);
                        sndPlayer2.Play();
                    }
                    else
                    {
                        Logger<HanGuoLogistics>.Error("PlaySoundSendSuccess。 不存在聲音文件:" + strPath);
                    }
                    return false;
                }
            }
            catch (Exception e)
            {
                Logger<HanGuoLogisticsPic>.Error("上傳圖片異常   " + e);
            }
            return false;
        }
        public string SendData(string picFilepath, string name, string url, string barcode, string workConsole, string destination)
        {
            var fileContent1 = new ByteArrayContent(File.ReadAllBytes(picFilepath));
            fileContent1.Headers.ContentDisposition = new ContentDispositionHeaderValue("file")
            {
                FileName = name
            };
            var postContent = new MultipartFormDataContent();
            postContent.Add(new StringContent(barcode), "ticketsNum");
            postContent.Add(fileContent1);//圖片文件
            postContent.Add(new StringContent(workConsole), "workConsole");
            postContent.Add(new StringContent(destination), "destination");
            Logger<HanGuoLogisticsPic>.Debug("向"+config.HttpPostApiAddr+"發(fā)送數(shù)據(jù)"+JsonConvert.SerializeObject(postContent));
            string httpResult = GetHttpPostResponse(url, postContent);
            Logger<HanGuoLogisticsPic>.Debug("接收" + config.HttpPostApiAddr + "返回?cái)?shù)據(jù)" + httpResult);
            return httpResult;
        }
        private string GetHttpPostResponse(string url, MultipartFormDataContent postData)
        {
            string result = "";
            //form表單格式傳參
            try
            {
                HttpClient client = new HttpClient();
                HttpResponseMessage response = client.PostAsync(url, postData).Result;
                result = response.Content.ReadAsStringAsync().Result;
            }
            catch (Exception ex)
            {
                result = ex.Message;
            }
            Logger<HanGuoLogisticsPic>.Debug($"HanGuoLogistics 返回?cái)?shù)據(jù):{result}");
            return result;
        }
        /// <summary>
        /// 參數(shù)上報(bào)
        /// </summary>
        public class ImageInfo
        {
            public string ticketsNum { get; set; }
            public string file { get; set; }
            public string workConsole { get; set; }
            public string destination { get; set; }
        }
        /// <summary>
        /// 返回信息
        /// </summary>
        public class ImageResult
        {
            public bool result { get; set; }
            public string message { get; set; }
        }
        #endregion
    }
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#簡(jiǎn)單連接sql數(shù)據(jù)庫(kù)的方法

    C#簡(jiǎn)單連接sql數(shù)據(jù)庫(kù)的方法

    這篇文章主要介紹了C#簡(jiǎn)單連接sql數(shù)據(jù)庫(kù)的方法,涉及C#基于控制臺(tái)的數(shù)據(jù)庫(kù)連接創(chuàng)建于命令執(zhí)行相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • C#對(duì)JSON與對(duì)象的序列化與反序列化

    C#對(duì)JSON與對(duì)象的序列化與反序列化

    這篇文章介紹了C#對(duì)JSON與對(duì)象的序列化與反序列化,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C#中委托和事件的區(qū)別實(shí)例解析

    C#中委托和事件的區(qū)別實(shí)例解析

    這篇文章主要介紹了C#中委托和事件的區(qū)別,并分別以實(shí)例形式展示了通過(guò)委托執(zhí)行方法與通過(guò)事件執(zhí)行方法,以及相關(guān)的執(zhí)行流程與原理分析,需要的朋友可以參考下
    2014-09-09
  • 聊一聊C#接口問(wèn)題 新手速來(lái)圍觀

    聊一聊C#接口問(wèn)題 新手速來(lái)圍觀

    聊一聊C#接口問(wèn)題,新手速來(lái)圍觀,一個(gè)通俗易懂的例子幫助大家更好的理解C#接口問(wèn)題,感興趣的小伙伴們可以參考一下
    2016-08-08
  • .net使用cap實(shí)現(xiàn)消息異步處理

    .net使用cap實(shí)現(xiàn)消息異步處理

    CAP 是一個(gè)基于 .NET Standard 的 C# 庫(kù),它是一種處理分布式事務(wù)的解決方案,同樣具有 EventBus 的功能,它具有輕量級(jí)、易使用、高性能等特點(diǎn),本文給大家介紹了.net下使用cap實(shí)現(xiàn)消息異步處理,需要的朋友可以參考下
    2024-05-05
  • C#實(shí)現(xiàn)開機(jī)自動(dòng)啟動(dòng)設(shè)置代碼分享

    C#實(shí)現(xiàn)開機(jī)自動(dòng)啟動(dòng)設(shè)置代碼分享

    這篇文章主要介紹了C#實(shí)現(xiàn)開機(jī)自動(dòng)啟動(dòng)設(shè)置代碼分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-07-07
  • C#畫圖之餅圖折線圖的實(shí)現(xiàn)方法

    C#畫圖之餅圖折線圖的實(shí)現(xiàn)方法

    這篇文章主要介紹了C#畫圖之餅圖折線圖的實(shí)現(xiàn)方法,以實(shí)例形式講述了C#畫圖的完整實(shí)現(xiàn)過(guò)程,是非常實(shí)用的技巧,有不錯(cuò)的借鑒價(jià)值,需要的朋友可以參考下
    2014-09-09
  • 使用c#在word文檔中創(chuàng)建表格的方法詳解

    使用c#在word文檔中創(chuàng)建表格的方法詳解

    本篇文章是對(duì)使用c#在word文檔中創(chuàng)建表格的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C#9.0中init訪問(wèn)器的實(shí)現(xiàn)

    C#9.0中init訪問(wèn)器的實(shí)現(xiàn)

    本文主要介紹了C#9.0中init訪問(wèn)器的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • C#中科學(xué)繪圖庫(kù)ScottPlot的使用詳解

    C#中科學(xué)繪圖庫(kù)ScottPlot的使用詳解

    ScottPlot是基于.Net的一款開源免費(fèi)的交互式可視化庫(kù),支持Winform和WPF等UI框架,本文給大家介紹了C#中科學(xué)繪圖庫(kù)ScottPlot的使用方法,文中示例在WPF環(huán)境中運(yùn)行,需要的朋友可以參考下
    2023-12-12

最新評(píng)論

天全县| 锡林浩特市| 蓝田县| 巍山| 攀枝花市| 丹棱县| 茌平县| 嘉禾县| 甘南县| 子洲县| 德化县| 吴旗县| 湖州市| 柳江县| 禄劝| 阿克苏市| 灵丘县| 尉氏县| 黎平县| 临安市| 崇明县| 尚志市| 平邑县| 揭阳市| 景洪市| 根河市| 丽水市| 石楼县| 通辽市| 天水市| 读书| 二手房| 嵩明县| 黔江区| 金溪县| 河源市| 卢湾区| 白朗县| 青阳县| 织金县| 茶陵县|