2016-03-23 18 views
0

Powershellを使用してファイルをWebサービスで必要なBase64でエンコードされたバイト配列に変換しようとしています。どうやってやるの?Powershell Base64 String to Bytes

私の現在のアプローチはにある:base64Stringはバイト配列ではありませんので、最後の行は、動作しません

$content = [System.IO.File]::ReadAllBytes("$scriptpath/dummy.txt") 
$base64String =[System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($content)) 

$proxy = New-WebServiceProxy -Uri _____.wsdl 
//... set up proxy-objects 


$namespace = $proxy.GetType().Namespace 
$soapObject= new-object ("$namespace.customType") 
$soapObject.byteArray = base64String 

。残念ながら、私はバイト配列である必要があり、私はServer-Sideへのアクセス権がありません。

XML記法を使用すると、単にBase64Encoded Stringを直接入れることができます。しかし、パワーシェルとどうやるの?

<customType><byteArray>anyBase64String</byteArray></customType> 
+2

ここで 'soapObject'とは何ですか?バイト配列が必要な場合は、バイト配列を提供できるはずです。プロキシはそれをbase64に変換します。 –

+0

それだけです!生データを貼り付けるのと同じくらい簡単です...完全性のために、soapObjectの初期化を追加しました。あなたがそれを答えに入れたら、私はそれを受け入れることができます。 –

答えて

2

soapObject.byteArrayは、バイト配列を期待している場合、私はちょうどそれを配列を与えることができるように期待 - プロキシがBASE64でエンコードを実行してみましょう。したがって:

$soapObject.byteArray = content 

base64Stringはまったく必要ありません。