【问题标题】:google safe browsing lookup api code for javagoogle安全浏览查找api代码为java
【发布时间】:2012-12-27 13:42:46
【问题描述】:

我在编程时遇到了一些困难,请求正文的含义很混乱。它总是返回 400 个响应代码。请帮助我。

 String baseURL="https://sb-ssl.google.com/safebrowsing/api/lookup";

 String arguments = "";
 arguments+=URLEncoder.encode("client", "UTF-8")+"="+URLEncoder.encode("demo-app", "UTF-8")+"&";
 arguments+=URLEncoder.encode("apikey", "UTF-8")+"="+URLEncoder.encode("apikey", "UTF-8")+"&";
 arguments+=URLEncoder.encode("appver", "UTF-8")+"="+URLEncoder.encode("1.5.2", "UTF-8")+"&";
 arguments+=URLEncoder.encode("pver", "UTF-8")+"="+URLEncoder.encode("3.0", "UTF-8")+"&";
 arguments+=URLEncoder.encode("post_req_body", "UTF-8")+"="+URLEncoder.encode("2\nhttp://www.google.com\nhttp://www.facebook.com", "UTF-8");

 String query = arguments;

    System.out.println("Sending POST request - " + query);
// Construct the url object representing cgi script
    URL url = new URL( baseURL );

    // Get a URLConnection object, to write to POST method
    URLConnection connect = url.openConnection();

    // Specify connection settings
    connect.setDoInput(true);
    connect.setDoOutput(true);

// Get an output stream for writing
    OutputStream output = connect.getOutputStream();


    PrintStream pout = new PrintStream (output);

    pout.print ( query );
    pout.close();

【问题讨论】:

  • 您是否已在 Google 注册并请求 API 密钥?您的代码既不包含有效的应用名称,也不包含有效的 API 密钥。
  • 为了发布数据,您需要转换为HttpURLConnection并调用setRequestMethod

标签: java http post safe-browsing


【解决方案1】:

您的请求是错误的。如果使用 POST 请求,那么参数 clientapikeyapiverpver 应该是网址。

请求正文应仅包含要检查的 URL(加上第一行的 URL 数量)。

所以它可能看起来像这样:

String baseURL="https://sb-ssl.google.com/safebrowsing/api/lookup";

String arguments = "";
arguments + =URLEncoder.encode("client", "UTF-8") + "=" + URLEncoder.encode("myapp", "UTF-8") + "&";
arguments + =URLEncoder.encode("apikey", "UTF-8") + "=" + URLEncoder.encode("12341234", "UTF-8") + "&";
arguments + =URLEncoder.encode("appver", "UTF-8") + "=" + URLEncoder.encode("1.5.2", "UTF-8") + "&";
arguments + =URLEncoder.encode("pver", "UTF-8") + "=" + URLEncoder.encode("3.0", "UTF-8");

// Construct the url object representing cgi script
URL url = new URL(baseURL + "?" + arguments);

// Get a URLConnection object, to write to POST method
URLConnection connect = url.openConnection();

// Specify connection settings
connect.setDoInput(true);
connect.setDoOutput(true);

// Get an output stream for writing
OutputStream output = connect.getOutputStream();
PrintStream pout = new PrintStream (output);
pout.print("2");
pout.println();
pout.print("http://www.google.com");
pout.println();
pout.print("http://www.facebook.com");
pout.close();

【讨论】:

  • 我们还需要做什么才能将一个 URL 发送到 google api,并收到一个安全与否的答案?我想第一部分是用上面的代码完成的,接下来我们需要等待答案吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多