URAMIRAIKAN

1020のなれの果て (since 2005.6.19)

"Invoke-RestMethod"とかの文字コード

 ここのところ、Windows環境からREST APIを叩くためにPowerShellで"Invoke-WebRequest"や"Invoke-RestMethod"を頻繁に使っています。
 このとき、POSTメソッドとかのBodyに含まれているマルチバイト文字がUTF-8として認識されていなかった。
 基本的なことなんだけど、やり方が分かるまでちょっと苦戦したのでメモ。

 結論としてはデータ型をバイト列にして送ればいい。
 自分はBodyをヒアドキュメントで記述することが多いので、以下のようにエンコードしてPOSTする。

$BodyXml = @" <root> <data1>データ01</data1> <data2>データ02</data2> </root> "@ $Byte = [System.Text.Encoding]::UTF8.GetBytes($BodyXml) $Res = Invoke-RestMethod -Uri "http://localhost/api" -Method POST -Body $Byte

 いつまで経っても文字コードでハマるんだよなぁ…。


1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28

プロフィール

1020@管理人

都内を彷徨っているインフラエンジニアとかいう雑用係。いつだって眠い…。

最近のつぶやき

@umkn1020 (02/24-20:19)
RT @mk00350: この裁判には少なからず関わっていたものですから、この判決には驚愕しました。 裁判官の「ブースター使えば映る」という理論なら「PCモニターにチューナーとアンテナ付ければ映る、契約しろ」「今は無くてもテレビ買えば映る、契約しろ」ということにもなりかねません…
@umkn1020 (02/24-13:33)
まあ、そろそろ名前変えた方が良いのではとは思っていましたね。
@umkn1020 (02/24-13:32)
RT @drmaruyama: GPUでグラフィック計算、、、 難しそう、、、 https://t.co/8h7gxi0mY1
@umkn1020 (02/24-13:28)
RT @akindoh: どこぞで見かけた「いま若い人にファミコンの話をすると38年前の出来事(2021-1983)で、ファミコン誕生時期に年寄りから太平洋戦争の話を聞かされてるのと同じ38年前の出来事(1983-1945)」ってのは軽くショック受けた(笑)
@umkn1020 (02/24-08:26)
RT @hiyoko_taisa: まぁ、枯れたチップを使うくせにコストや品質にアホほどうるさくて注文ばかり多いワガママなクルマメーカーより、利益率の高い最新の高性能チップをガバガバ使ってくれるスマホやタブレット、ゲーム機のようなデバイスの生産を優先したいのは企業として当たり前…

エントリーリスト

カテゴリーリスト

タグ