0

このようにJavaを使用してSOAPサーバーを呼び出すことができます

        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, "");

しかし、私の質問は、curl と 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 をエコーし​​、SOAP サーバーからの結果は見つかりませんでした。しかし、私の石鹸サーバーは問題なく、Java でテストされています。

4

2 に答える 2

0

CURLOPT_HEADER が true または false (出力に HTTP ヘッダーを含めるかどうか) のいずれかである必要があることを除いて、私には問題ないように見えますが、

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

する必要があります

curl_setopt($ch, CURLOPT_HEADER, true);

confirmPassword が何であるかを推測することしかできません。コールバックの場合は、代わりに CURLOPT_HEADERFUNCTION を使用する必要があります。

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

于 2012-01-08T11:41:24.430 に答える
0

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

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

次に、出力が何であるかを投稿します。

于 2012-01-17T08:53:26.593 に答える