が返されました。私はSMS(学生管理システム)を政府のサービスまたはサイトに接続しようとしていました。このプロセスでは、Vanguardからの認証トークンが必要です。正常に、私はトークンを取得することができます...しかし、PHPのドキュメントとサンプルコードの不足のため、私は上記のサービスに通信する際に問題が発生しています。それが問題になるか、それは紛争Webサービスへのインターフェースを持っている私の呼び出しで私のコードである場合、私は思っていた:Vanguardのトークンを使用してUSIウェブサービスにアクセスすると、エラー
:<?php
require_once 'VanguardClient.php';
$endpoint = 'https://3pt.portal.usi.gov.au/Service/v2/UsiService.svc';
function get_sts($endpoint){
$test = true;
$auskey_path = 'Keystore.xml';
$auskey_password = 'Password1!';
$v = new VanguardClient($test);
$v->loadAuskey($auskey_path, $auskey_password);
try {
return $v->requestToken($endpoint);
} catch (SoapFault $e) {
echo "Error1:";
echo $e;
}
}
//get token from Vanguard
$token = get_sts($endpoint);
//create soap client
try{
$wsdl = 'https://3pt.portal.usi.gov.au/service/V2/UsiService.wsdl';
$client = new SoapClient($wsdl,
array(
'trace' =>1,
//'soap_version' => SOAP_1_2,
'keep_alive' => false,
//'connection_timeout' => 500000,
'cache_wsdl' => WSDL_CACHE_NONE
)
);
} catch (SoapFault $e) {
echo "SoapClient Error:<br />";
var_dump($e);
}
try {
$result=$client->__setSoapHeaders($token);
} catch (SoapFault $e) {
echo "__setSoapHeaders:";
var_dump($e);
}
$data = array(
'OrgCode' => '970003',
'USI' => 'U6Q8JN6UD9',
'FirstName' => 'Myrna',
'FamilyName' => 'Macknight',
'DateOfBirth' => '1971-04-19'
);
try{
$response=$client->__soapCall('VerifyUSI',$data);
} catch (SoapFault $e) {
echo "__soapCall Error:<br />";
echo $e;
}
var_dump($response);
私は見ていますブラウザ上の結果はこれです:以下のコードを見てください
SoapFault例外:[HTTP]コンテンツタイプ 'text/xml;が原因でメッセージを処理できません。 charset = utf-8 'は予想されるタイプではありませんでした' application/soap + xml; charset = utf-8 'となります。 /var/www/html/usitest/example1.php:73スタックトレースで:#0 [内部機能]のSoapClient - > __ doRequest( '__ soapCall(' VerifyUSI」、アレイ)#2 {メイン} NULL
事前にみんなに感謝します!!!
私の以下のコメントをOPの質問に移してください...みんな、これについて何か進歩はありましたか?返されたトークンをsoapheaderに渡すときに、SOAP 1.2を使用して「無効なSOAPヘッダー」を取得することと全く同じ問題があります。私はあなたがこれを働かせるかどうか知りたいです。世界で二人だけがPHPでこれを試みようとしているように見えます:) –