有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

http google安全浏览查找java api代码

我在编程时遇到了一些困难,请求主体的含义也很混乱。它总是返回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();

共 (1) 个答案

  1. # 1 楼答案

    你的要求是错误的。如果使用POST请求,则参数clientapikeyapiverpver应该是URL的一部分

    请求主体应该只包含要检查的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();