wtk模拟器上连接本机tomcat上的servlet,用post方法传送字节流,servlet总是接收不到数据(输入流.available()==0)。
可是用get方法 ...servlet?name=value的形式,servlet就可以通过getParameters()收到,证明模拟器到servlet是通的。
我查遍了网络上的示例与代码,也看了《j2me核心技术与最佳实践》上的例子,还是接收不到。不知道是什么原因!
/*客户端代码*/
public class HttpOP implements Runnable{
public void run() {
try {
conn=(HttpConnection) Connector.open(http://127.0.0.1:8080/webServer/servlet);
conn.setRequestMethod(HttpConnection.POST);
conn.setRequestProperty( "Content-Type ", "application/octet-stream ");
InputStream is=getClass.getResourceAsStream( "/res/test.png ");
byte [] buffer=new byte [is.available()];
dos=new DataOutputStream(conn.openOutputStream());
dos.write(buffer);
dos.flush();
dos.close();
conn.close();
} catch (IOException e) {
}
} //这里buffer的长度大于0 是有值的。
/* servlet端代码*/
public class Controller extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
DataInputStream dis=new DataInputStream( request.getInputStream());
System.out.println(dis.available());
}
哪位遇到过这样的问题,请赐教!!!
急!
------解决方案--------------------------------------------------------
up
------解决方案--------------------------------------------------------
需要设置数据长度,否则服务器端无法取得
好象是这样设置的
conn.setRequestProperty( "Content-Length ",长度)