我有如下需求:
从文本文件ID.TXT中提取查询语句,通过url.openConnection();获取从服务器端传来的信息,再将这些信息写成一个HTML文件。
但是现在服务器做一些修改,每次提交查询语句后,经常一个可以获取信息,后面一个说”用户没有登陆“,我估计服务器端为SESSION做了限制,一个用户不可以同时提交两个查询信息,所以后一个无法查询。
所以恳请各位有什么好的法子,不让我的程序突破上述限制,可以一个一个正常获取信息?
我试过TIMER的方法,但是效果不好,因为获取信息的时间是不固定的,最好可以我一个查询结束了,停10秒,我在提交一个查询
程序如下:
import java.io.*;
import java.net.*;public class nettest80000 {
public static void main(String args[])
{
try {
String strdata = "";
String[] strArr = null;
//读入查询文件
FileInputStream infile =new FileInputStream("c:\\id.txt");
InputStreamReader noSrm = new InputStreamReader(infile);
BufferedReader noRd = new BufferedReader(noSrm);
//查询开始,上限80000
for (int j=0; j<80000;j++){
String strData = noRd.readLine();
if (strData == null) {
break;
}
//查询生成结果文件
if (strData != null && strData.trim().length() != 0) {
//分割字符
strArr = strData.split("&");
FileOutputStream outfile = new FileOutputStream("c:\\"+strArr[1]+".html");
//查询
URL url = new URL ("http://×××××××××××××");
URLConnection conn = url.openConnection();
url.getUserInfo();
InputStreamReader inSrm = new InputStreamReader(conn.getInputStream());
BufferedReader bfRd = new BufferedReader(inSrm);
//读取数据
for (int i=0;i<10000;i++){
strdata = bfRd.readLine();
if (strdata == null) break;
//写文件
outfile.write(strdata.getBytes());
}
//关闭文件
outfile.close();
}
}
} catch (Exception ex){
ex.printStackTrace();
}
}
}
从文本文件ID.TXT中提取查询语句,通过url.openConnection();获取从服务器端传来的信息,再将这些信息写成一个HTML文件。
但是现在服务器做一些修改,每次提交查询语句后,经常一个可以获取信息,后面一个说”用户没有登陆“,我估计服务器端为SESSION做了限制,一个用户不可以同时提交两个查询信息,所以后一个无法查询。
所以恳请各位有什么好的法子,不让我的程序突破上述限制,可以一个一个正常获取信息?
我试过TIMER的方法,但是效果不好,因为获取信息的时间是不固定的,最好可以我一个查询结束了,停10秒,我在提交一个查询
程序如下:
import java.io.*;
import java.net.*;public class nettest80000 {
public static void main(String args[])
{
try {
String strdata = "";
String[] strArr = null;
//读入查询文件
FileInputStream infile =new FileInputStream("c:\\id.txt");
InputStreamReader noSrm = new InputStreamReader(infile);
BufferedReader noRd = new BufferedReader(noSrm);
//查询开始,上限80000
for (int j=0; j<80000;j++){
String strData = noRd.readLine();
if (strData == null) {
break;
}
//查询生成结果文件
if (strData != null && strData.trim().length() != 0) {
//分割字符
strArr = strData.split("&");
FileOutputStream outfile = new FileOutputStream("c:\\"+strArr[1]+".html");
//查询
URL url = new URL ("http://×××××××××××××");
URLConnection conn = url.openConnection();
url.getUserInfo();
InputStreamReader inSrm = new InputStreamReader(conn.getInputStream());
BufferedReader bfRd = new BufferedReader(inSrm);
//读取数据
for (int i=0;i<10000;i++){
strdata = bfRd.readLine();
if (strdata == null) break;
//写文件
outfile.write(strdata.getBytes());
}
//关闭文件
outfile.close();
}
}
} catch (Exception ex){
ex.printStackTrace();
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货