Что мне написать с outputtream в Java, если я хочу отправить запрос http? - PullRequest
1 голос
/ 30 марта 2012

Итак, у меня есть этот кусок кода, и давайте предположим, что я заполняю форму на веб-сайте и хочу отправить ее, как мне найти ключи и значения для отправки? Я объясню лучше, у меня есть этот код, он должен отправлять HTTP-запрос POST, но я не знаю, что поставить вместо «key1» и «value1», то же самое относится и к «key2» и «value2» :

public String sendPostRequest(String url) {

    StringBuffer sb = null;

    try {
        String data = URLEncoder.encode("key1", "UTF-8") + "="
                + URLEncoder.encode("value1", "UTF-8");
        data += "&" + URLEncoder.encode("key2", "UTF-8") + "="
                + URLEncoder.encode("value2", "UTF-8");

        URL requestUrl = new URL(url);
        HttpURLConnection conn = (HttpURLConnection) requestUrl
                .openConnection();
        conn.setDoOutput(true);
        conn.setRequestMethod("POST");

        OutputStreamWriter osw = new OutputStreamWriter(
                conn.getOutputStream());
        osw.write(data);
        osw.flush();

        BufferedReader br = new BufferedReader(new InputStreamReader(
                conn.getInputStream()));

        String in = "";
        sb = new StringBuffer();

        while ((in = br.readLine()) != null) {
            sb.append(in + "\n");
        }

        osw.close();
        br.close();
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return sb.toString();
}

Можете ли вы привести пример сайта с рабочей копией этого кода? (ключ1 / ключ2 и значение1 / значение2 заменены на то, что работает)

Вы можете добавить больше ключей / значений, если это работает лучше, я просто не знаю, как узнать, что заполнять там для каждого отдельного сайта.

1 Ответ

3 голосов
/ 30 марта 2012

Ключами будут атрибуты имени элементов ввода формы html.Значения будут значения, которые вы хотите установить.

...