博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 使用curl工具 上传图片到微信服务器示例
阅读量:4287 次
发布时间:2019-05-27

本文共 2771 字,大约阅读时间需要 9 分钟。

1.获取参数,指定文件绝对路径

private string getCommand()        {            return string.Format(" -F media=@\"{0}\" \"https://api.weixin.qq.com/cgi-bin/media/upload?access_token={1}&type=images\""                , this.FileName                , this.config.Access_Token                );        }

2.执行命令

///         /// 运行cmd命令        /// 不显示命令窗口        ///         /// 指定应用程序的完整路径        /// 执行命令行参数       public static string RunCmd2(string cmdStr)        {            try            {                using (Process myPro = new Process())                {                    //指定绝对路径                    // myPro.StartInfo.FileName = @"I:\AppSolution\curl_pkg\curl-7.57.0-win64-mingw\bin\curl.exe";                    //使用环境变量路径                    string enPath = Environment.GetEnvironmentVariable("CURL_HOME");                    LogOperate.Write("当前命令的环境变量:"+enPath);                    myPro.StartInfo.FileName = enPath + @"\curl.exe";                    myPro.StartInfo.UseShellExecute = false;                    myPro.StartInfo.RedirectStandardInput = true;                    myPro.StartInfo.RedirectStandardOutput = true;                    myPro.StartInfo.RedirectStandardError = true;                    myPro.StartInfo.CreateNoWindow = true;                    myPro.StartInfo.Arguments = cmdStr; //指定参数                    myPro.Start();                    myPro.StandardInput.AutoFlush = true;                    //获取cmd窗口的输出信息                    string output = myPro.StandardOutput.ReadToEnd();                    myPro.WaitForExit();                    myPro.Close();                    return output;                }            }            catch (Exception ex)            {                return ex.Message;            }        }

3.解析curl相应结果

#region 远程调用        ///         /// 上传图片返回图片id        ///         ///         /// 
public string PostImage(string filename) { try { this.FileName = AppDomain.CurrentDomain.BaseDirectory + "data/" + filename; string command = getCommand(); LogOperate.Write("PostImage:" + command); //执行命令获取mediaid string backdata = RunCmd2(command); LogOperate.Write("backdata:" + backdata); JObject obj = JObject.FromObject(backdata); JToken media_id = obj.SelectToken("media_id"); if (media_id == null) throw new Exception($"获取media_id失败," + backdata); return media_id.ToString(); } catch (Exception ex) { LogOperate.Write("上传素材出错:" + ex.Message + "|" + ex.StackTrace); } return string.Empty; } #endregion
在参数正确的情况下,以上三步就可以获取到图片的media_id。

更多:

 

 

转载地址:http://hxogi.baihongyu.com/

你可能感兴趣的文章
【4个Win7系统轻松清理记录小技巧】
查看>>
【页面脚本错误快速解决方案】
查看>>
【php输出内容乱码解决方法】
查看>>
【Win8两种安全模式互相切换图形说明】
查看>>
【Win7系统去掉磁盘保护教程】
查看>>
【炫酷战机Win7热门主题】
查看>>
【可爱接吻鱼电脑主题】
查看>>
【详细介绍常见XP系统的配置要求】
查看>>
【解决使用scp命令时不必输入密码的程序】
查看>>
【无敌海景清醒电脑xp主题】
查看>>
【性感玫瑰&热门Win7主题】
查看>>
【秋色动人xp情侣主题】
查看>>
【Win7英文系统显示中文乱码】
查看>>
【IE10打开链接的默认启动方式】
查看>>
【等爱的女孩win7热门主题】
查看>>
【php:根据中文裁减字符串函数方法】
查看>>
【重装xp系统必然要知道的五个设置】
查看>>
【林间美女XP热门主题】
查看>>
【4招搞定注册表键值快速定位】
查看>>
【唯美童话森林xp主题】
查看>>