ASP.NET获取微信客户端上传的图片

本来我以为这个是很简单的事情,后来做了才发现原来使用微信JS-SDK的时候,微信的HTML5客户端不会将图片直接post给我服务端,而是先提交给微信服务器,然后我的服务端需要通过serverId 来获得图片,大致的流程我绘制了UML,大家可以理解下
在这里插入图片描述
目前我们只关心服务器这段,我们将得到客户端传来的ServerID,从微信的服务器上下载图片到本地。
需要实现这一点,我们有两个前提

  • 公众号要注册,要给钱,这就是前面强调需要完成的的认证的原因
  • 获取access token

我们实现的代码如下

public async Task<string> Get(string mediaid)
{
    var queryString = HttpUtility.ParseQueryString(string.Empty);
    queryString["access_token"] = await Get();
    queryString["media_id"] = mediaid;

    var uri = "http://file.api.weixin.qq.com/cgi-bin/media/get?" + queryString;

    HttpResponseMessage response;
    response = await client.GetAsync(uri);

    var msg = await response.Content.ReadAsStreamAsync();
    var file = response.Content.Headers.ContentDisposition.FileName.Replace("\"", "");

    var helper = new ProjecToxfordClientHelper();

    var content = await FileHelper.ReadAsync (msg);

    FileHelper.SaveFile(content, file);

    return file;
}

如果access token正确且media_id(就是那个serverid)有效,微信服务端会返回给我们文件名和流,我们就可以对这些流做一些我们希望的处理了。

好了,到了现在的话,我们对微信服务器需要实现的接口都差不多了,接下来我们需要实现牛津计划的FACE了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值