PHP

2012-01-08 8 views
0

を使用してカールを実行し、私はこのPHP

 Call call = new Call(); 
     URL url = new URL("http://soap-something.dash.com/servlet/rpcrouter"); 
     call.setTargetObjectURI("urn:login-transport"); 
     call.setMethodName("confirmPassword"); 
     call.setParams(a vector); 
     resp = call.invoke(url, ""); 

のようなJavaを使用してSOAPサーバーを呼び出すことができます。しかし、私の質問はどのように私はカールとPHPを使用して、この同じ関数を呼び出すことができ、私はすでにこれを試してみましたが、それはかもしれ面白いのコードのいくつかの種類が

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, "http://soap-something.dash.com/servlet/rpcrouter?urn:login-transport"); 
    curl_setopt($ch, CURLOPT_HEADER, true); 
    curl_setopt($ch, CURLOPT_HEADERFUNCTION, "confirmPassword"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, array("username"=>"pritom", "password"=>"pritom")); 
    $head = curl_exec($ch); 
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    curl_close($ch); 
    echo "<br/>HTTP CODE: " . $httpCode; 
    print_r($head); 

しかしエコーHTTPコード100及びIは、SOAPサーバーから任意の結果を発見していません。しかし、私の石鹸サーバーはok、javaでテストされています。

+3

あなたは問題が何であるかは述べていません。 – Ariel

+0

うーん、あなたは今私の問題を見ることができます。 – Pritom

答えて

0

CURLOPT_HEADERは(出力やないHTTPヘッダーを含む)に、真または偽のいずれかであることが必要除き、

curl_setopt($ch, CURLOPT_HEADER, "confirmPassword"); 

は私だけ何confirmPasswordを推測することができます

curl_setopt($ch, CURLOPT_HEADER, true); 

する必要があり、私には正常に見えますコールバックの場合は、代わりにCURLOPT_HEADERFUNCTIONを使用する必要があります。

しかし、アリエルが指摘したように、あなたは問題が何であるかを私たちに伝えていません。

+0

どこが 'urn:login-transport'になり、' confirmPassword'は呼び出される関数です。 – Pritom

+0

あなたがしたいのがSOAPなら、代わりに[SoapClient](http://www.php.net/manual/en/class.soapclient.php) – cvaldemar

+0

PHP SOAP関数を調べることをお勧めします。 !!!私はカールを書き直しましたが、作業していません... – Pritom

0

は、この行を削除してください:

curl_setopt($ch, CURLOPT_NOBODY, false); // remove body 

その後、出力が何であるかを投稿してください。

+0

その行を削除した後も同じ結果になります。 httpコード100を取得します。 – Pritom

+0

@Pritom httpコード100は、サーバーがリクエストの本文を待っていることを意味します。それはかなり珍しいhttpコードですが、おそらく石鹸はそれを使用します。 PHPのURLフォームがあなたのJavaコードのものとまったく同じであることを確認できますか?あなたのソースコードだけでなく、実際のSOAPサーバーログを確認してください。 – Ariel

+0

@Pritom 'CURLOPT_HEADER'をfalseに設定して、それが何をするかを見てください。 – Ariel