denghua10 2009-04-19 22:41
浏览 149
已采纳

HttpURLConnection连接问题

客户端如下:
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;

public class SentUpdate {
static public void main(String args[]){
try{

URL newURL = new URL("http://192.168.1.102:8080/hessianTest/AcceptUpdate");
HttpURLConnection conn = (HttpURLConnection) newURL.openConnection();
conn.setUseCaches(false);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type","application/x-java-serialized-object");
OutputStream outStrm = conn.getOutputStream();
ObjectOutputStream objOutputStrm = new ObjectOutputStream(outStrm);
objOutputStrm.writeObject(new String("abc"));
objOutputStrm.flush();
objOutputStrm.close();
InputStream inStrm = conn.getInputStream();
inStrm.close();
}catch(MalformedURLException e){
System.err.print("malformedURLexception"+e);
}catch(IOException e){
System.err.print("IOException"+e);
}
}
}
服务器端如下
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**

  • Servlet implementation class for Servlet: GetSerlet
  • / public class AcceptUpdate extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { / (non-Java-doc)
  • @see javax.servlet.http.HttpServlet#HttpServlet() */ public AcceptUpdate() { super(); }

/* (non-Java-doc)

  • @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { InputStream inStream = request.getInputStream(); ObjectInputStream objInStream = new ObjectInputStream(inStream); try { Object obj = objInStream.readObject(); String ss=(String) objInStream.readObject(); System.out.println(ss);

} catch (ClassNotFoundException e) {
e.printStackTrace();
}

}

}
但是为什么无法得到输出流呢,就是服务器端无法读到ss

  • 写回答

1条回答 默认 最新

  • iteye_14762 2009-04-20 10:18
    关注

    你将objInStream读了两遍,第一次已经把流完了,第二次就读不出来了,会抛一个EOFException:

    Object obj = objInStream.readObject();
    String ss=(String) objInStream.readObject();

    改成:
    //Object obj = objInStream.readObject();//去掉这句
    String ss=(String) objInStream.readObject();
    System.out.println(ss);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?