micropythonのPOSTでハマった件
m5stackでmicropythonを動かして、spotifyで再生中の曲を表示するものを作っている.
m5stackで再生中のSpotifyの曲の画像が出るようなのを作ってみた pic.twitter.com/59qnbYn47M
— がらえもん (@garaemon) 2018年4月14日
その過程で、micropythonに入っているurequestsライブラリでは, postメソッドを特に指定せずに使った時にContent-Type
が指定されないというのでハマった.
よくあるライブラリではpostを呼び出すと Content-Type: application/x-www-form-urlencoded
が指定される. しかしこれが指定されないのでちゃんとContent-Type
を渡してあげる必要がある.
urequests.post( 'http://example.com/foo', data=..., headers={ 'Content-Type': 'application/x-www-form-urlencoded', })
ただ、json
オプションを利用すると、Content-Type: application/json
が親切に自動的に指定される.
urequestsを使う場合は ソースに目を通すのが必要そうだ.