search
LoginSignup
0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

AAKEL Advent Calendar 2020 Day 9

Organization

【responder】http通信で音声ファイルを送受信する

これは何

ローカルにある.wavファイルをリモート のサーバーにhttpで送信したい。
そのサンプル用に作ったファイルの紹介です。

プログラムとしては何をしているの?

音声ファイルをhttpで送信するには、base64でバイナリに変換してから送る方法があるそうです。

リクエスト側

import base64
import requests


def post_file():
    url = "http://localhost:5042"
    file_name = 'sample.wav'

    with open(file_name, 'rb') as f:
        data = f.read()

    data_bytes = base64.b64encode(data)
    files = {'file': data_bytes}

    requests.post(url, data=files)


if __name__ == '__main__':
    post_file()

ホスト側

import base64
import responder

api = responder.API()


@api.route("/")
async def on_post(req, resp):
    data = await req.media()
    data_bytes = base64.b64decode(data['file'].encode())

    with open("wav_file.wav", 'bw') as f:
        f.write(data_bytes)


if __name__ == '__main__':
    api.run()

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0
Help us understand the problem. What are the problem?