2016-08-31 1 views
1

Ich möchte eine Anfrage an einen Web-Service senden, und die Daten, die ich an diese Webdienste senden möchte, ist ein Multi-Dimesion-Array.Senden multidimensionalen Array zu Web-Services im Post-Format

Dies ist das Array:

$array = array(array(
         'search_product' => 'syntha-6 isolate One', 
         'search_product1' => 'syntha-6 isolate Two', 
         'search_product2' => 'syntha-6 isolate Three', 
         'search_product3' => 'syntha-6 isolate Four', 
         'search_product4' => 'syntha-6 isolate Five', 
         'search_brand1' => 'bsn', 
         'search_brand2' => 'BSN' 
        ), 
       array(
         'search_product' => 'syntha-6 isolate Six', 
         'search_product1' => 'syntha-6 isolate Seven', 
         'search_product2' => 'syntha-6 isolate Eight', 
         'search_product3' => 'syntha-6 isolate Nine', 
         'search_product4' => 'syntha-6 isolate Ten', 
         'search_brand1' => 'bsn', 
         'search_brand2' => 'BSN' 
        ), 
       array(
         'search_product' => 'syntha-6 isolate H', 
         'search_product1' => 'syntha-6 isolate K', 
         'search_product2' => 'syntha-6 isolate L', 
         'search_product3' => 'syntha-6 isolate M', 
         'search_product4' => 'syntha-6 isolate N', 
         'search_brand1' => 'bsn', 
         'search_brand2' => 'BSN' 
        ), 
      );  

Und hier ist der Curl-Code, der ich die Daten an einen Web Service zu senden verwende.

$send_data = array('data'=>$array); 
$content = json_encode($send_data); 
$url  = "http://52.53.227.143/API_test1.php"; 
$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_HEADER, false); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $content); 

$json_response = curl_exec($curl); 

$status = curl_getinfo($curl, CURLINFO_HTTP_CODE); 

curl_close($curl); 

$response = json_decode($json_response, true); 
print_r($response); 

Und das ist der Code, den ich auf den Web Service bin mit trennen:

$post  = json_decode($_POST); 
$json_array = json_encode($post); 

echo $json_array; 

Aber nicht für mich arbeiten.

Bitte schlagen Sie mir vor, wie ich diese Funktionalität erreichen soll.

Antwort

0

senden Sie das Array als json und mit json HTTP-Header

curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array)); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json")); 
+0

Danke für die Antwort, aber ich müde bereits diese Lösung. Es funktioniert nicht für mich. –

+0

haben Sie die Ergebnisse mit diesen Dingen überprüft? $ Output = curl_exec ($ ch); $ err = curl_errno ($ ch); $ errmsg = curl_error ($ ch); $ header = curl_getinfo ($ ch); ' – Tamil

+0

Es gibt folge mir nach Fehler: Warnung: json_decode() erwartet Parameter 1 Zeichenfolge, Array in /var/www/html/API_test1.php auf der Leitung 23 null hier gegeben zu sein, ist mein webserivce Code: $ content = json_decode ($ _POST, wahr); $ json_array = json_encode ($ content); echo $ json_array; –

Verwandte Themen