如何让base64在PHP中显示为base64字符串?

时间:2015-03-24 16:21:26

标签: php encoding base64

我一直在使用一个使用令牌进行身份验证的API。我正在使用PHP的SoapClient类来登录所述API并检索我需要提出额外请求的令牌。

问题是API应该返回base64字符串标记,但在PHP中,它们不会被作为bas64字符串处理..我得到一个如下所示的字符串:

ç$P%’™‹2E‡ºË>Šo_ÑÒúé±N5Tá#=œã

而不是看起来像这样的base64字符串:

ERy/R5ycTG0sbRyH9KeMGpi9kPr6kROyaarFYgsPEOU=
  

注意:这两个字符串实际上并不相关,因为我无法使用php来显示第一个字符串的base64表示。我列为第二个字符串的base64字符串来自有效的soapUI响应。

所以我已经用soapUI确认,我的令牌实际上是作为base64字符串来实现的,但我不能让PHP将它们用作其他请求的字符串。我已经尝试在字符串上执行base64_decodebase64_encode,以及其他一些编码/解码,但到目前为止它们都没有工作过。

关于这里发生了什么的想法,以及我如何能够以我需要的方式使用数据?

编辑:这是我用来获取令牌数据的代码。如果这有帮助,那就是DAT api。

$wsdlDat = "http://someurl.com:8000/wsdl/someWSDL.wsdl";
$soapOptions = array( 'loginId' => $userName, 'password' => $userPassword, 'thirdPartyId' => 'KEFKA_TMS', 'trace' => 1 );

$this->datClient = new SoapClient( $wsdlDat , $soapOptions );

$creds = array( 'loginId' => $userName, 'password' => $userPassword, 'thirdPartyId' => 'KEFKA_TMS' );
$loginOptions['loginOperation'] = $creds;

$this->token = $this->datClient->Login($loginOptions);
$this->token = datObjectToArray($this->token);  // TURN STD CLASS OBJ TO ARRAY

$token = $this->token['loginResult']['loginSuccessData']['token']['primary'];
$token2 = $this->token['loginResult']['loginSuccessData']['token']['secondary'];
$exp = $this->token['loginResult']['loginSuccessData']['expiration'];

0 个答案:

没有答案