Dart (Flutter) の dio ライブラリ
は、よく使われる http ライブラリと比べて、キャンセル、GETパラメータ、タイムアウト、JSON などが平易に扱えるため、使い勝手が良い。
ただ、Ver 3.x では、HTTP ヘッダーをすべて小文字にして送信するという問題がある。
つまり、
await Dio().get(
endpointUrl,
options: Options(
headers: {
'Authorization': 'xxxxxx'
}
),
);
とした場合、実際のヘッダは authorization: xxxxxx
となる。
サーバによっては、ヘッダを認識してくれないかもしれない。
https://github.com/flutterchina/dio/issues/641
この Issue で議論されているが、実際 RFC では、ヘッダーの大文字小文字は区別なく扱わなければならない、とあるが、現実的にサーバサイドで区別されている場合もあるので、そのような用途だと難しいかもしれない。
ただ、現在プルリクのある V 4.0.0 では直るかもしれない。様子見。
https://github.com/flutterchina/dio/pull/1082
ちなみに、http ライブラリに切り替えて試して見た所、同じように ヘッダはすべて小文字化だった。
コメント