10
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft Power AutomateAdvent Calendar 2024

Day 15

「要求本文をエンコードします」の挙動

Last updated at Posted at 2024-12-22

概要

Power Automate for desktop「Web サービスを呼び出します」アクションの詳細を展開するとデフォルトONになっている設定項目に「要求本文をエンコードします」という箇所があります。この設定をOFFにしたらうまく動いたといった情報をみかけたことがあります。
「要求本文をエンコードします」の挙動をのぞいてみました。

要求本文って何?

言語を英語に切替えてみるとRequest bodyとなっています。HTTPリクエストでPOSTメッソッド使用時に送信するBodyデータのようです。

image.png

要求本文をエンコードしますって何?

リクエスト前にURLエンコードをするオプションのようです。日本語訳が分かりにくいのでこれも英語でみておきました。

image.png

URLエンコードは受信側で誤解されないようにパーセントエンコーディングします。

例えばContent-Type: application/x-www-form-urlencoded形式でHTTPリクエストは
キーと値は「=」で連結され、複数のペアは「&」で区切られます。値の中に区切り文字「&」が混ざっていたらパーセントエンコードが必要です。
半角スペースは%20という16進数の文字エンティティに変換されます。

GETメソッドのURLエンコードと似ていますね。GETメソッドでは ?キー=値&キー=値..の形式をとりURL欄に記述します。またこのアクションのURL欄は自動でパーセントエンコーディングされるようです。
image.png
「Power Automate」と半角スペースがあいてますが%20に変換されています。
image.png

覗いてみる

実際どのような動きをしているのかFidller classicでキャプチャしてみました。

POSTメソッドでContent-Type:application/jsonでは「要求本文をエンコードします」をONにすることは無いと思われますがここでは比較のためONにしています。

image.png

  • 「要求本文をエンコードします」OFFのとき
    Screenshot 2022-05-14 192007.jpg
    Screenshot 2022-05-14 192631.jpg

  • 「要求本文をエンコードします」ONのとき
    Screenshot 2022-05-14 192054.jpg
    Screenshot 2022-05-14 192734.jpg

説明どおりですね。

image.png

Content-Type: application/x-www-form-urlencoded形式のHTTPリクエストで使うのかなと思っていたのですが必要な「=」や「&」までエンコードされていまうため、いままで使かったことがありません。

  • 「要求本文をエンコードします」OFFのとき
    image.png
    image.png
  • 「要求本文をエンコードします」ONのとき

image.png
BodyのName(Key)に全部まとまってしまいWebFormにうまく渡せません。
image.png

まとめ

「要求本文をエンコードします」の挙動をみてみました。
言葉通りパーセントエンコーディングされるのはわかりました。しかしデフォルトでなぜオンになっているのか今のところよくわかりません。Content-Type:application/jsonをエンコードすることはなさそうですし、Content-Type: application/x-www-form-urlencodeでも使ったことがないです。受信側のそうした仕様は以前多かったのでしょうか?どなたか教えてください💦
この記事は2年前から下書きになっていたので供養しました。
2024年12月22日現在も「要求本文をエンコードします」はデフォルトオンです。

10
3
0

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
  3. You can use dark theme
What you can do with signing up
10
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?