0

使用postman请求微信服务器接口,微信服务器直接返回一张图片,貌似是以二进制形式返回的,下面有截图。
现在为了傻瓜化流程,用koa框架去代替postman的过程发送请求,接收到的二进制不知道怎么返回到客户端显示成一个图片了?如果吧接收到的内容打印到控制台显示为如下乱码

ctx.type="image/png"
ctx.status = 200;

先改了响应头,那么接收到的二进制内容是用res.body响应么?还是要使用流?。。。代码如下

"use strict";

var router = require('koa-router')();
var koa = require('koa');
var fs = require('fs');
var app = new koa();
var request = require('request');
var qs = require('querystring');

let options = {
    method: 'GET',
    url: 'a'
};

let options1 = {
    method: 'POST',
    url: 'b,
    json: true
};


router.get('/', (ctx, next) =>{
    ctx.type="image/png"
    ctx.status = 200;
    request(options, async (err, res, body)=> {
        if (err) {
            console.log(err)
        } else {
            access_token = JSON.parse(body).access_token
            next()
        }
    })
});


let a = (ctx,next)=>{

    request(option1,(err, res, body) =>{
        if (err) {
            console.log(err)
        } else {
          
            res.body =body
        }
    })
}
app.use(router.routes());
app.use(a)

app.listen(3001);

查看全部 4 个回答

0
  1. 将你的request包装成promise

  2. ctx.body = await requestxxx();