2016-03-23 32 views
0

Bir Dosya ile Powershell'i bir web servisinin gerektirdiği Base64 kodlu bir Bayt Dizisine dönüştürmeye çalışıyorum. Bunu nasıl yapabilirim? base64String bir bayt dizisi olmadığındanPowershell Base64 Dize ile Dizin

$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 

son satırı, çalışmaz:

Benim şu anki yaklaşımı etmektir. Maalesef bir bayt dizisi olması gerekiyor ve Sunucu Tarafına erişimim yok.

XML-Notation'ı kullanarak Base64Encoded Stringi doğrudan yerleştirebilirim. Ama powershell ile nasıl yapılır? Proxy base64 kodlaması gerçekleştirmek let - soapObject.byteArray bir bayt dizisi bekliyor Eğer

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

Burada soapObject işlevi nedir? Bir bayt dizisi bekleniyorsa, bayt dizisini sağlamanız ve proxy'nin base64'e dönüştürmesi beklenir. –

+0

İşte bu! Ham verileri yapıştırmak kadar basit .... Tamlık için soapObject ilklendirmesini ekledim. Eğer bir cevaba koyarsan kabul edebilirim. –

cevap

2

, sadece o diziyi verebileceğiz beklersiniz. Yani:

$soapObject.byteArray = content 

hiç base64String gerek yok.