客户端上:
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
PrintWriter out = new PrintWriter(conn.getOutputStream());
out.print(sendByte); //sendByte是一个10K的字节byte[];
out.flush();
out.close();服务器端的Serlvet:
ServletInputStream input = request.getInputStream();
input.read(readData);以上是我的代码,在Serlvet端上怎样也收不到数据,不知要怎样写?
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
PrintWriter out = new PrintWriter(conn.getOutputStream());
out.print(sendByte); //sendByte是一个10K的字节byte[];
out.flush();
out.close();服务器端的Serlvet:
ServletInputStream input = request.getInputStream();
input.read(readData);以上是我的代码,在Serlvet端上怎样也收不到数据,不知要怎样写?
另外:
你的connection是持久化对象吗?就是说是javabean吗?我一般是写成
public class ConnData{
public InputStream getInputStream(){}
public void closeAll(){}
}然后实例化,调用方法,最后调用关闭。
其实我也是新手的说,菜鸟一个的说。你看看吧....
int i =0;
int size=s.available();
while((i=s.read())!=-1){
System.out.print((char)i);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
}
因为客户端是post数据,而不是get.
下面我给你一个实例:
客户端:
URL url = new URL("http://localhost:8080/test/accept");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
BufferedOutputStream out = new BufferedOutputStream(conn.getOutputStream());
byte[] bytes = new byte[]{1,2,3,4,5};
out.write(bytes);
out.flush();
out.close(); BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line=null;
while((line=in.readLine())!=null){
System.out.println(line);
} in.close();
-------------------------------------------------------------
服务器端:
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
BufferedInputStream in = new BufferedInputStream(request.getInputStream());
byte[] bytes=new byte[1024];
int len = 0;
while((len=in.read(bytes))!=-1){
System.out.println(bytes);
}
System.out.println(bytes);
out.print("ok");
out.close();
} //Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
}这个例子我已经测试通过。尽量学会使用装饰类BufferedReader,BufferedInputStream,BufferedOutputStream.
可以提高性能。他们继承自Reader,Stream,并包含一个Reader,Stream,对其进行装饰,提高性能,但对外接口不变。
客户端:ok
服务器端:输出字节数组的地址,没什么用,你可以改一下,让他输出字节数组的内容看看。
while((len=in.read(bytes))!=-1){
System.out.println(bytes);
}
System.out.println(bytes);
如果进入循环,则bytes中的数据全部来自网络,如果没有进入循环则bytes中的0到len的数据来自网络,其余数据无效。