Java中的AJAX GET请求

时间:2012-11-04 11:45:47

标签: java ajax url ajax-request

我正在尝试使用java在某些网站上发出GET AJAX请求。

我的代码如下:

    String cookie = getRandomString(16); //Getting a random 32-symbol string

    String url = "https://e-kassa.org/core/ajax/stations_search.php?"
            + "q=%D0%BE&limit=10&timestamp=1352028872503";
    HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();

    conn.setRequestProperty("Cookie", "PHPSESSID=" + cookie);
    InputStream is = conn.getInputStream();

    int buffer;
    while((buffer = is.read()) != -1)
        System.out.print(buffer);

    is.close();
    conn.disconnect();

但问题是没有什么可以从InputStream下载的。但如果我使用我的浏览器做同样的事情,我会得到一个响应,由以下格式的文本行组成:

  

CITY_NAME | SOME_DIGITS

那么,任何人都能告诉我,我怎样才能以适当的方式提出这样的要求呢?

UPD:没有cookie我有相同的行为(在浏览器中一切都很好,但不是用Java)。

2 个答案:

答案 0 :(得分:1)

请你试试:

BufferedReader rd = null;
        try {
            URL url = new URL("https://e-kassa.org/core/ajax/stations_search.php?"
            + "q=%D0%BE&limit=10&timestamp=1352028872503");
            URLConnection conn = url.openConnection();
            String cookie = (new RandomString(32)).nextString();
            conn.setRequestProperty("Cookie", "PHPSESSID=" + cookie);
            // Get the response
            rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            StringBuffer sb = new StringBuffer();
            String line;
            while ((line = rd.readLine()) != null) {
                sb.append(line);
            }
            System.out.println(sb.toString());
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (rd != null) {
                try {
                    rd.close();
                } catch (IOException e) {
                }
            }
        }

这是在我的项目中正常运行的代码的和平。 :)

答案 1 :(得分:0)

尝试以下方法。

HttpURLConnection connection = null;
    try {
        String url = "https://e-kassa.org/core/ajax/stations_search.php?"
            + "q=%D0%BE&limit=10&timestamp=1352028872503";
        URL url = new URL(url);
        connection = (HttpURLConnection) url.openConnection();
        connection.setRequestProperty("Cookie", "PHPSESSID=" + cookie);
        connection.connect();
        connection.getInputStream();
        int buffer;
        while((buffer = is.read()) != -1)
           System.out.print(buffer);
    } catch (MalformedURLException e1) {
        e1.printStackTrace();
    } catch (IOException e1) {
        e1.printStackTrace();
    } finally {
        if(null != connection) { connection.disconnect(); }
    }