使用API​​(Java)在HttpURLConnection中保持基本授权

时间:2016-05-14 20:27:55

标签: java inputstream httpurlconnection http-basic-authentication

我正在通过API使用HTTP基本身份验证以下列方式检索数据:

        for (int i = 1; i < 10000; i++) {
            try {
                URL newurl = new URL ("SOMEURL" + i + ".json");
                HttpURLConnection newconnection = (HttpURLConnection) newurl.openConnection();
                newconnection.setRequestMethod("GET");
                newconnection.setDoInput(true);
                newconnection.setRequestProperty ("Authorization", "Basic " + encoding);
                try {
                    InputStream newcontent = (InputStream)newconnection.getInputStream();
                    BufferedReader bfReader = new BufferedReader (new InputStreamReader (newcontent));          
                    String newline;

                    if ((newline = bfReader.readLine()) != null) {
                        out.println(newline); 
                    }
                }
                catch(Exception e2) {
                }
            }
            catch(Exception e) {
                e.printStackTrace();
            }
        }

问题:我可以为第一个请求获取一次身份验证,保持活动状态,并在不要求身份验证的情况下发出剩余的9999个请求,而不是要求身份验证10,000次吗?

目的:加快处理速度,减少服务器负载。

有任何意见吗?

1 个答案:

答案 0 :(得分:0)

HTTP设计为无状态,因此您的方法没有任何问题。但是,您可以(但不推荐使用API​​)会话(使用cookie)或提供登录URL,该URL将发出您可以传递的临时身份验证令牌。