URAMIRAIKAN

1020のなれの果て

"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 29
30 31          

プロフィール

1020@管理人

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

最近のつぶやき

@umkn1020 (12/06-23:32)
久々に飲んだのでなんとなく今年は乗り切れそうw
@umkn1020 (12/06-08:17)
RT @syuheiuda: うちのマネージャーがサポートについて熱く語ってたので、気になる方は是非読んでみてくださいまし そして、共感してもらえる方がいたら是非ご応募をー なぜ今サポートエンジニアが熱いか https://t.co/qyt2lPMzyq
@umkn1020 (12/06-08:16)
RT @learn_learning3: 今日は、現在のインターネットの原型となったらARPANETに、最初の4ノードができた日(1969年12月5日)からちょうど50年の記念日っぽい これが結果として地球を覆うことになると思うと… https://t.co/TSpehmcGLJ
@umkn1020 (12/05-21:02)
RT @chaostrain: 高輪ゲートウェイ駅の開業で、国内に「ゲ」のつく駅は4つに増えるのですが何か妙なのが混じってるぞ https://t.co/0FFWufK4rF

エントリーリスト

カテゴリーリスト

タグ