Java在查询网页时传递URLConnection参数

Java在查询网页时传递URLConnection参数,java,Java,我想在www.domain.com.au上进行搜索,其中需要提供一些URL参数,以便获得 HTTP响应成功。但是, 1. String url = "http://www.domain.com.au/"; // or www.realestate.com.au 2. String charset = "UTF-8"; 3. String param1 = "Melbourne 3000 VIC"; // simple search on the web page 4.

我想在www.domain.com.au上进行搜索,其中需要提供一些URL参数,以便获得 HTTP响应成功。但是,

  1.  String url = "http://www.domain.com.au/"; // or www.realestate.com.au
  2.  String charset = "UTF-8";
  3.  String param1 = "Melbourne 3000 VIC"; // simple search on the web page
  4.
  5.  URLConnection connection = (URLConnection) new URL(url + "?" + param1).openConnection();
  6.  connection.setRequestProperty("Accept-Charset", charset);
  7.  connection.connect();
  8.  connection.setDoInput(true);
  9.  connection.setDoOutput(false);
 10.  connection.connect();
      .......
响应是HTTP 400错误。因此,我需要您就以下问题提供建议,以了解问题所在 来自:

(i)参数名称应该是param1,还是网页上的其他名称?如果是,是什么

(ii)假设参数名称为param1,第5行是否正确?是否有必要包括 即使第6行已经显式设置了URLEncoder.encode(param1,charset)

上述代码片段适用于其他不需要参数的简单网页

如蒙指教,不胜感激

谢谢


在下面的链接中,使用
java.net.URLConnection

的Jack被很好地描述为

有两件事:

一,。这里没有传递名称-值对。典型的GET URL请求如下所示

http://www.domain.com.au/?param1=value
您只是在传递值,您的URL看起来像

http://www.domain.com.au/?Melbourne 3000维也纳国际中心

二,。将5号线改为

URLConnection connection=(URLConnection)新URL(URL+”?parame1=“+param1).openConnection()


另外对查询字符串进行编码,以用html编码替换空格。如何做到这一点

我已经查看了doamin.com.au网站

1) 搜索参数的名称为“searchterm”,在URL中缺少键(键=值)

HttpURLConnection connection = (HttpURLConnection) new URL(url + "?searchterm=" + param1).openConnection();
2) 如果有特殊字符,则应包含编码

以下是从网站返回内容的代码示例:

    public void searchDomain(String key) throws Throwable
{
    String url = "http://www.domain.com.au/"; // or www.realestate.com.au
    String charset = "UTF-8";
    String param1 = "Melbourne"; // simple search on the web page
    HttpURLConnection connection = (HttpURLConnection) new URL(url + "?searchterm=" + param1).openConnection();
    connection.setRequestProperty("Accept-Charset", charset);
    connection.setDoInput(true);
    connection.setDoOutput(true);
    connection.connect();

    java.io.BufferedReader br = new java.io.BufferedReader(new java.io.InputStreamReader(connection.getInputStream()));
    java.lang.StringBuffer sb = new java.lang.StringBuffer();
    java.lang.String str = br.readLine();
    while (str != null) 
    {
        sb.append(str);
        str = br.readLine();
    }
    br.close();
    connection.disconnect();

    System.out.println(sb.toString());
}

谢谢你的更新。然而,建议1。甚至连www.domain.com.au都没能连接到&最后在谷歌搜索提示下澄清。另一方面,正确的URsL应该如下所示,返回有效的结果:感谢您的更新。然而,建议1。甚至连www.domain.com.au都没能连接到&最后在谷歌搜索提示下澄清。另一方面,正确的URsL应该类似于以下返回有效结果的内容:您是否能够查找此网页以澄清我应该使用哪个有效URL(包括参数)?再次感谢Jack,感谢BalusC为您提供关于此主题的建议。我已经阅读了这篇文章很多次,并在这篇文章中使用了其中的例子,但它对我来说不起作用,很可能是因为我缺乏对这篇文章所指内容的知识和解释。如果您可以查找同一个网站以了解正确的URL(包括参数)是什么,那就太棒了。谢谢,杰克