問題タブ [soapserver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP SoapServer: XML (WSDL ファイル) を解決しない - XML ファイルがない - URL に「?wsdl」がある
プロダクション サーバー (リモート サーバー) の PHP に実装された Soap サーバーに問題があります。
WSDL モードで機能するだけの単純な Soap Server (ネイティブ PHP クラス) を実装しました。
したがって、私のコードは次のようになります。
ご存知のように、「http://localhost/soapserver/wsServer.php」のような URL を使用して Web ブラウザー経由でサーバーを呼び出すと、空白のページが表示されます。 (サーバー コード)。
しかし、「http://localhost/soapserver/wsServer.php?wsdl」という末尾に「?wsdl」を付けて同じ URL を呼び出すと、サーバー (ハンドル関数だと思います) が Web ブラウザー上で XML wsdl を解決し、 text/xml コンテンツ タイプを取得し、XML 定義自体を確認できます。
現在、私の開発環境で動作しています。問題はありません。独自のサーバーをテストするために Soap クライアントを作成し、予想どおりの応答が返されるかどうかを確認しましたが、すべて正常に動作しました。しかし、コードを本番サーバーにアップロードすると、機能しません。
Firefox は、"?wsdl" 呼び出しで URL に表示されます。これは、"XML の形式が正しくありません" という典型的なエラーですが、この特定のケースでは、XML ファイルがまったくない場合のように、最初から発生しています。クライアントを使用すると、次のエラーが表示されます。
SOAP-ERROR: WSDL の解析: 'http://.../SOAP_SERVER/seguimientoServer.php?wsdl' から読み込めませんでした: 開始タグが必要ですが、'<' が見つかりません
WSDL XML ファイルの名前空間と URL を正しく変更しました。したがって、適切に機能する必要があります。しかし、そうではありません。
チャンクされたデータ、コンテンツの長さ、X-powered-by などに基づいて、HTTP ヘッダー自体に関連する既存のバグがあることがわかりました...
しかし、解決策がわかりません。
これに基づいてサーバーを少しハックしました(handle()呼び出しの後):
そしてこれで、それは本当にうまくいきます!しかし、これで解決する必要はないと確信しています...
php - PHP SoapServer から文字列の配列を返す
PHP で SOAP サービスを構築しようとしています。Web サービスに使用している WSDL は、Visual Studio 2010 によって自動生成されました (Visual Studio を使用して WSDL を作成しただけで、実際のサーバーは SoapServer を使用して PHP で構築されています)。SOAP サービスへのリクエストは処理されていますが、文字列の配列を返そうとすると、クライアントから結果が返されません。WSDL の関連セクションは次のとおりです。
PHP サーバーコードは次のとおりです。
また、PHP のgetGroups関数から単にarray('hello world')を返そうとしましたが、これもうまくいきませんでした。私の WSDL 定義と一致する文字列の配列を返すための PHP コードを修正するのを手伝ってくれませんか。
php - PHP SoapServer によって返された文字列値が .Net クライアントによって受信されない
Visual Studio 2010 によって自動生成された WSDL ドキュメント (つまり、Visual Studio で新しい Web サービス アプリケーションを作成するときに作成される "HelloWorld" アプリケーションから) を使用していますが、PHP で Web サービスを開発する必要があるため、この WSDL ドキュメントを PHP SoapServer で使用しています。ここに WSDL ドキュメントをコピーします。
私の PHP SoapServer コードは次のようになります。
.Net クライアントでこの SOAP サービスを呼び出そうとすると、空の文字列が返されます。この単純な例で何がうまくいかないのか誰にもわかりませんか?
アップデート:
これは特に、PHP サーバーから .Net クライアントとの通信に問題があるようです。PHP クライアントでテストしたところ、PHP クライアントでサーバーからメッセージが返されました。しかし、何らかの理由で .Net クライアントに空の文字列が返されます。.Net クライアント用に、簡単な WinForms アプリケーションを作成し、PHP SOAP サーバーへの Web 参照を追加しました。Web 参照が正しく追加され、API が表示されます。次のクリック ハンドルを使用して、フォームにボタンを 1 つ配置します。
php - phpでcurlを実行する
このようにJavaを使用してSOAPサーバーを呼び出すことができます
しかし、私の質問は、curl と php を使用してこの同じ関数を呼び出すにはどうすればよいかということです。すでにこれを試しましたが、何かおかしいコードかもしれません
しかし、それは http コード 100 をエコーし、SOAP サーバーからの結果は見つかりませんでした。しかし、私の石鹸サーバーは問題なく、Java でテストされています。
php - PHP石鹸サーバーでカスタムタイプを返す方法は?
私はPHP SoapServerが非wsdlモードで動作しています。データを処理し、setClass() を使用して応答を返すようにサーバーをセットアップしました。連想配列を返そうとしましたが、それはアイテム、キー、値を持つ SOAP マップに変換されます。以下の内容で回答したいと思います。
変数は、成功が true か false か、およびコメントになります。
「typemap」オプションについて読み込もうとしましたが、十分に文書化されておらず、これまでに発見したことは私をさらに混乱させるだけです。これまでに見つけたリソースは、this oneとthis oneのような php ユニット テストと、この stackoverflow の質問です。
誰かが私がやろうとしていることをする例を教えてもらえますか? 自動検出 (Zend の Soap Server を使用) で wsdl モードに切り替えても問題ないと思います。
編集:正しい方法を理解するまで、すべての XML を手動で書き出すだけです。
php - 指定された WSDL から PHP SOAP サービスを作成する
これは非常に怠惰な質問に思われるかもしれませんが、そうではないことを保証します。これを機能させるために何日も試みましたが、できません。
WSDL ファイルを受け取ったので、PHP でそのための SOAP サービスを作成する必要があります。誰かがそれを行う正しい方法を教えてもらえますか?
サービスの受信者は、getMember メソッドが呼び出されたときに「User」オブジェクトが返されることを期待しています。
これがWSDLです
助けてくれる人にはとても感謝しています。
追加
php - SoapServer がエンベロープなしで応答を送信
純粋な xml、つまり SOAP エンベロープのない SOAP 応答を送信したいと思います。これが私の現在の対応です
しかし、これは私が送りたい応答です
誰か提案はありますか?
よろしくお願いします
php - SoapServer は text/xml の代わりに text/html ヘッダーを送信します
私の SOAP サーバーは、応答ヘッダーで Content-Type: text/html を送信します。Content-type: text/xml が必要です。
サーバーの応答は次のとおりです。
HTTP/1.1 200 OK
日付: 2012 年 3 月 19 日月曜日 12:17:10 GMT
サーバー: Apache/2.2.20 (Ubuntu)
X-Powered-By: PHP/5.3.6-13ubuntu3.6
Set-Cookie: CAKEPHP=msmid2fijgrj1efjs0otl8qfj1 ; expires=Mon, 19-Mar-2012 16:17:10 GMT; path=/
P3P: CP="NOI ADM DEV PSAi COM NAV OUR ORo STP IND DEM"
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 877
Content-Type: text/html ; 文字セット=UTF-8
text/xml コンテンツ タイプで header() を呼び出そうとしました
SoapServer の構築前後ですが、結果はありません。
php - PHPSoapサーバー呼び出されたメソッドを知る方法
PHPでは、SOAPによって呼び出されるメソッドがどうなるか知りたいです。これが理解するためのサンプルです...
私が知りたいのは、handle()で実行されるメソッドの名前です。
ありがとうございました !!
php - WSDL/SoapServer を介した SOAP 応答の解析
一部のデータを含む変更不可能な SOAP メッセージを受け入れる必要があります。それは私の WSDL ファイルにポストされ、次に PHP SoapServer にポストされます。wsdl または php を介してメッセージ内の特定のデータ (xml キーにラップされた) を抽出するにはどうすればよいですか?
データ フロー (アクションは矢印で、2 番目の矢印は SoapServer.php バブルから始まり、応答を受け取ります):