ホームページ >バックエンド開発 >PHPチュートリアル >PHP は WEBSERVICE インターフェイスを呼び出し、パラメータを渡します

PHP は WEBSERVICE インターフェイスを呼び出し、パラメータを渡します

WBOY
WBOYオリジナル
2016-06-23 14:16:261774ブラウズ

皆さん、こんにちは。websevice を呼び出すと、ポートは正常に接続できましたが、エラー :soap:Client: リクエスト要素が認識されませんでした。これを解決するにはどうすればよいですか? うわー
コードが間違っていますか? ???


ディスカッションへの返信 (解決策)

このような問題に遭遇したことがありますか?

WSDL を見ずに DeductionIntegral のパラメータがどうあるべきかを決定することはできません

ただし、従わなければならない原則があります:
直接メソッド名へのアクセスが次のような場合 $client->DeductionIntegral($param)
次にcall メソッドを使用します。 アクセスは次のようにする必要があります。 $client->call('DeductionIntegral',array($param))
つまり、call_user_func_array 関数が内部で呼び出されるため、パラメーターは配列に配置する必要があります

WSDL を見ないと、DeductionIntegral のパラメーターが How であるべきかどうかは定かではありません

ただし、従わなければならない原則があります:
直接メソッド名へのアクセスが次のような場合 $client->DeductionIntegral($param)
次に呼び出しメソッドへのアクセスは次のようにする必要があります $client->call('DeductionIntegral ',array($param))
つまり、call_user_func_array 関数が内部的に呼び出されるため、パラメーターは配列に配置される必要があります http://hr .pim-cs.com/WebService/IntegralInterface.asmx?wsdl、$client->call('DeductionIntegral',array($obj)) を使用しても同じエラー メッセージが表示されます。理解できません。

WSDL を見ずに DeductionIntegral のパラメータがどうあるべきかを決定することはできません

ただし、従わなければならない原則があります:
ダイレクト メソッド名アクセスが次のような場合 $client->DeductionIntegral($param)
次に call を使用します メソッドへのアクセスは次のようにする必要があります $client->call('DeductionIntegral',array($param))
つまり、 call_user_func_array 関数が内部で呼び出されるため、パラメータは配列に配置する必要があります
これは次のようになりますパラメータが正しく渡されていないことを確認したいのですが、このように呼んでいますか?
$json='{"リクエスト":{"ヘッダー":{"IFCode":"インターフェース識別","CorpCode":"顧客コード","SysCode":"KongRun_BasicCode","アカウント":"アカウント", "Pwd":"パスワード"},"本文":{"統合":"10","MobilePhone":"携帯電話番号"}}}' $obj=json_decode($json); ; //$param=array('MobilePhone'=>$MobilePhone,'Integral'=>$Integral); $result=$client->call('DeductionIntegral',array('parameters'=>$) obj ));

合計 2 つのメソッドを提供します

[0] => DeductionIntegralResponse DeductionIntegral(DeductionIntegral $parameters)
[1] => MemberAddIntegralResponse MemberAddIntegral(MemberAddIntegral $parameters)
DeductionIntegral メソッドには次のような DeductionIntegral 型のデータが必要ですパラメーター

DeductionIntegral 型は次のように記述されます:
struct DeductionIntegral {
string Json;

したがって、次のように呼び出す必要があります
$param = array('Json' => $json);

$client- >call ('DeductionIntegral',array($param));
$client->DeductionIntegral($param);

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHPの基本次の記事:PHPの基本