谷歌安全浏览 api v4 始终返回空响应



我在我的安卓代码中使用安全浏览 api v4。我正在使用 Asynctask 并使用 httpurlconnection 请求安全浏览 api。响应始终为空。

我也使用测试 url http://malware.testing.google.test/testing/malware/测试了我的连接,然后它也返回空。

class Malicious extends AsyncTask<String, Void, Wrapper> {
private OnTaskCompleted listener;
public Malicious(OnTaskCompleted listener){
this.listener=listener;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
protected Wrapper doInBackground(String... args) {
String postURL = "https://safebrowsing.googleapis.com/v4/threatMatches:find?key=APIKEY";
String requestBody = "{" +
"    "client": {" +
"      "clientId":      "twittersentidetector"," +
"      "clientVersion": "1.0"" +
"    }," +
"    "threatInfo": {" +
"      "threatTypes":      ["MALWARE", "SOCIAL_ENGINEERING"]," +
"      "platformTypes":    ["ANY_PLATFORM"]," +
"      "threatEntryTypes": ["URL"]," +
"      "threatEntries": [" +
"        {"url": "" + args[0] + ""}," +
"      ]" +
"    }" +
"  }";

URL url;
StringBuffer response = new StringBuffer();
try {
url = new URL(postURL);
} catch (MalformedURLException e) {
throw new IllegalArgumentException("invalid url");
}
HttpURLConnection conn = null;
try {
conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(false);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("User-Agent", USER_AGENT);
conn.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
try( DataOutputStream wr = new DataOutputStream( conn.getOutputStream())) {
byte[] b = requestBody.getBytes();
wr.write(b);
wr.flush();
wr.close();
}
// handle the response
int status = conn.getResponseCode();
if (status != 200) {
throw new IOException("Post failed with error code " + status);
} else {
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (conn != null) {
conn.disconnect();
}
//Here is your json in string format
String responseJSON = response.toString();
Wrapper w = new Wrapper();
w.responce = responseJSON;
w.url = args[0];
return w;
}


}
@Override
protected void onPostExecute(Wrapper xml) {
if(xml.responce.length()==0){
showtoast("safe");
}
else{
showtoast("not safe");
listener.onTaskCompleted(xml.url);
}
}
}

对于测试网址,它也显示安全。api面板显示发出了请求,我不知道我做错了什么,我使用的是最新版本的V4 API,但无论使用什么URL,始终显示它是安全的。

如果 URL不在威胁列表中,则返回空,但您可以使用这些 URL 测试代码。

https://testsafebrowsing.appspot.com/s/phishing.html https://testsafebrowsing.appspot.com/s/malware.html https://testsafebrowsing.appspot.com/s/malware_in_iframe.html https://testsafebrowsing.appspot.com/s/unwanted.html https://testsafebrowsing.appspot.com/s/content.exe https://testsafebrowsing.appspot.com/apiv4/IOS/MALWARE/URL/

本网站还有更多内容 (从 https://testsafebrowsing.appspot.com/)

我设置了这个基本的 curl 脚本,它只返回空括号 {} 搜索共识似乎是因为我正在查找的网站不是恶意的。只有您提供的示例(http://malware.testing.google.test/testing/malware/)才能让我获得结果。我仍然不相信这是否正常工作,但这是脚本。希望对您有所帮助。(将API_KEY替换为您的 api 密钥)

<\?php>

$parameters = 数组( 'client' => array('clientId'=>'Evolution Marketing', 'clientVersion'=>'1.5.2'), 'threatInfo' => array('threatTypes'=>array('MALWARE', 'SOCIAL_ENGINEERING'), 'platformTypes'=>array('ANY_PLATFORM'), 'threatEntryTypes'=>array('URL'), 'threatEntries'=>array(array('url'=>'http://malware.testing.google.test/testing/malware/') )), );

$json = json_encode($parameters);

$ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch,CURLOPT_URL,"https://safebrowsing.googleapis.com/v4/threatMatches:find?key=API_KEY");

curl_setopt($ch, CURLOPT_POST, 真);

curl_setopt($ch、CURLOPT_POSTFIELDS、$json);

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));

$response = curl_exec($ch);

print_r($response);

最新更新