Sto tentando di inviare una richiesta SOAP in PHP. Ho il mio URL del servizio, e quando ho check in SOAP UI, posso vedere il seguenteCome inviare una richiesta SOAP in PHP
<application xmlns="http://somenamespace.com">
<doc xml:lang="en" title="https://someurl.com"/>
<resources base="https://someurl.com">
<resource path="sdk/user/session/logon/" id="Logon">
<doc xml:lang="en" title="Logon"/>
<param name="ApiKey" type="xs:string" required="false" default="" style="query" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
<param name="ApiSecret" type="xs:string" required="false" default="" style="query" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
<method name="POST" id="Logon">
<doc xml:lang="en" title="Logon"/>
<request>
<param name="method" type="xs:string" required="true" default="" style="query" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
<representation mediaType="application/json"/>
<representation mediaType="application/xml"/>
<representation mediaType="text/xml"/>
<representation mediaType="application/x-www-form-urlencoded"/>
</request>
<response status="404 500">
<representation mediaType="text/html; charset=utf-8" element="html"/>
</response>
<response status="">
<representation mediaType="application/json"/>
<representation mediaType="application/xml"/>
<representation mediaType="text/xml"/>
<representation mediaType="application/x-www-form-urlencoded"/>
</response>
<response status="500">
<representation mediaType="application/vnd.marg.bcsocial.result-v1.9+json; charset=utf-8" element="log:Fault" xmlns:log="https://someurl.com/sdk/user/session/logon"/>
<representation mediaType="application/vnd.marg.bcsocial.result-v1.9+xml; charset=utf-8" element="web:Result_1" xmlns:web="https://someurl.com/Sdk/WebService"/>
</response>
<response status="200">
<representation mediaType="application/vnd.marg.bcsocial.api.index.options.list-v2.6+xml; charset=utf-8" element="web:ListOfApiIndexOptions_4" xmlns:web="https://someurl.com/Sdk/WebService"/>
<representation mediaType="" element="data"/>
</response>
</method>
</resource>
</resources>
</application>
Così sto cercando di usare questo per accedere. Al momento, sto cercando qualcosa di simile al seguente
public function updateApi(){
$service_url = 'https://someurl.com/sdk/user/session/logon';
$curl = curl_init($service_url);
$curl_post_data = array(
"ApiKey" => 'somekey',
"ApiSecret" => 'somesecret',
);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);
$curl_response = curl_exec($curl);
curl_close($curl);
var_dump($curl_response);
}
Tuttavia, ho sempre ricevuto una reazione all'anomalia che l'accesso non è riuscito. Devo chiamare il metodo di accesso o qualcosa del genere? Davvero solo in cerca di un consiglio se sto facendo le cose correttamente.
Grazie
I documenti per il servizio che si sta tentando di colpire potrebbero avere una spiegazione dei loro servizi RESTful e di come utilizzarlo. Puoi condividere quale API stai cercando di colpire? Forse qualcuno ha scritto wrapper che potresti usare per semplificare il tuo lavoro. – zedfoxus
Sfortunatamente è un'API privata, i documenti non sono disponibili a meno che non acceda. I documenti mostrano solo note molto semplici. Ho cercato e non ci sono wrapper da nessuna parte. –
È possibile che manchi il parametro 'metodo' richiesto nella richiesta? – Val