2016-05-24 1 views
0

Ich habe ein PHP-Skript, das Google Safe Browsing Lookup-API (v4) zu verwenden versucht, aber ich bekomme Fehler "ungültige JSON-Payload erhalten. Unbekannter Name \" \ " : muss Wurzelelement eine Nachricht sein ...“Safe-Browsing-Lookup-API (v4) Ungültige JSON-Payload erhalten

meinen Code Hier ist:

<?php 

$data = '{ 
    "client": { 
    "clientId": "TestClient", 
    "clientVersion": "1.0" 
    }, 
    "threatInfo": { 
    "threatTypes":  ["MALWARE", "SOCIAL_ENGINEERING"], 
    "platformTypes": ["LINUX"], 
    "threatEntryTypes": ["URL"], 
    "threatEntries": [ 
     {"url": "http://www.google.com"} 
    ] 
    } 
}'; 


$apikey = "my_secret_api_key"; 
$url_send ="https://safebrowsing.googleapis.com/v4/threatMatches:find?key=".$apikey.""; 

$str_data = json_encode($data); 

function sendPostData($url, $post){ 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", 'Content-Length: ' . strlen($post))); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$result = curl_exec($ch); 
return $result; 
} 

$jaahas = sendPostData($url_send, $str_data); 

echo "<pre>"; 
var_dump($jaahas); 

?> 

gibt es etwas falsch mit der json-Datenarray Formatierung oder was das Problem sein könnte?

Antwort

0

Sie führen json_encode auf Daten aus, die bereits codiert sind.

dh. Ändern Sie diese Zeile:

$jaahas = sendPostData($url_send, $str_data); 

zu

$jaahas = sendPostData($url_send, $data); 
+0

Danke, aber wenn ich das ändern, bekomme ich nur antworten: ** string (3) "{}" **. Und laut Google-Dokumentation sollte die Antwort etwas anderes sein: https://developers.google.com/safe-browsing/v4/lookup-api#http-post-response – josu

+1

Eigentlich ist das Problem gelöst. Der Code funktioniert mit dieser kleinen Änderung von @Vertigern Google gibt einfach keine Antwort, wenn die Seite nicht infiziert ist! – josu

Verwandte Themen