Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果我想发送http请求,我应该用Java中的outputstream编写什么?_Java_Url_Post_Request_Httpurlconnection - Fatal编程技术网

如果我想发送http请求,我应该用Java中的outputstream编写什么?

如果我想发送http请求,我应该用Java中的outputstream编写什么?,java,url,post,request,httpurlconnection,Java,Url,Post,Request,Httpurlconnection,我有这段代码,假设我在一个网站上填写表单并想要提交它,我如何找到要提交的键和值?我会更好地解释,我有这段代码,它应该发送一个HTTP POST请求,但我不知道用什么来代替“key1”和“value1”,同样的还有“key2”和“value2”: 你能给我一个这个代码的工作副本的示例站点吗?(键1/键2和值1/value2替换为有效的东西) 如果效果更好的话,你可以添加更多的键/值,我只是不知道如何为每个不同的站点填充内容 键是html表单输入元素的名称属性。这些值将是您想要设置的值。您不想使用H

我有这段代码,假设我在一个网站上填写表单并想要提交它,我如何找到要提交的键和值?我会更好地解释,我有这段代码,它应该发送一个HTTP POST请求,但我不知道用什么来代替“key1”和“value1”,同样的还有“key2”和“value2”:

你能给我一个这个代码的工作副本的示例站点吗?(键1/键2和值1/value2替换为有效的东西)


如果效果更好的话,你可以添加更多的键/值,我只是不知道如何为每个不同的站点填充内容

键是html表单输入元素的名称属性。这些值将是您想要设置的值。

您不想使用HTTP库的原因是什么?我不想使用任何外部库,如果这正是您所说的,那是因为我非常确定,如果我只知道应该在字符串“data”中插入什么,这段代码就可以工作。为什么您不想使用经过测试的,从其他地方优化的etc代码?您是否将此策略应用于所有问题?有很多非常好的Java库——避免“这里没有发明”综合症。如果我使用一个外部库,使我的问题非常容易解决,这不会是一个很大的实践,不是吗?此外,库不是问题所在,属性才是问题所在。
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();
}