当前位置: 技术问答>java相关
用urlConnection向用delphi做的http服务器post数据。为什么服务器会接收到两个完全一样的请求
来源: 互联网 发布时间:2017-03-24
本文导语: 服务器端是用delphi写的,调用IdHTTPServer控件,在onCommandOther事件中处理请求 用java写的client发送请求的,发送一次,服务器会收到两个完全一样的请求,谁能告诉我是怎么回事? java.net.URL url=new java.net.URL(/tech-qa-java/s/index.html); ...
服务器端是用delphi写的,调用IdHTTPServer控件,在onCommandOther事件中处理请求
用java写的client发送请求的,发送一次,服务器会收到两个完全一样的请求,谁能告诉我是怎么回事?
java.net.URL url=new java.net.URL(/tech-qa-java/s/index.html);
this.urlConnection=(sun.net.www.protocol.http.HttpURLConnection) url.openConnection();
this.urlConnection.setRequestMethod("POST");
this.urlConnection.setDoOutput(true);
try
{
PrintWriter out = new PrintWriter(
this.urlConnection.getOutputStream());
this.layerGroup.getGraphicsLayer().generateSaveDoc.write(out); out.flush();
out.close();
}
catch(java.io.IOException e)
{
System.out.println(e.getMessage());
e.printStackTrace();
}
try{
BufferedReader in = new BufferedReader(
new InputStreamReader(
this.urlConnection.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
{
System.out.println(inputLine);
}
in.close();
System.out.println(this.urlConnection.getResponseMessage());
}
catch(java.io.IOException e)
{
System.out.println(e.getMessage());
}
反复试了很多便,代码都改烂了,就是不行
我用socket 发http请求
Socket socket = new Socket("127.0.0.1", 81);
BufferedWriter out = new BufferedWriter(new
OutputStreamWriter(socket.getOutputStream()));
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
out.write("PUT / HTTP:/1.0 nn");
// out.write("ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssn");
out.write("an");
out.flush();
String line;
StringBuffer sb = new StringBuffer();
while((line = in.readLine()) != null) {
sb.append(line);
}
out.close();
in.close();
服务器也会收到两个一样的请求
但是,我用javascript写的客户端向server发送请求,就不会收到2个重复的
javascript用的是微软的domhttp发送的
这个问题折腾了2天了,请高首相助。
|
不会吧。
你将System.out.println(this.urlConnection.getResponseMessage());这句去掉试试。
你将System.out.println(this.urlConnection.getResponseMessage());这句去掉试试。
|
urlConnection.getInputStream()
urlConnection.getOutputStream()
你调用这两个方法就证明你向服务器发送了两次请求,你的Socket写的是类似的。
urlConnection.getOutputStream()
你调用这两个方法就证明你向服务器发送了两次请求,你的Socket写的是类似的。
|
不会!!!帮你顶一下!!!