日期:2014-05-20  浏览次数:20790 次

j2me连接servlet数据接收不到
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 ",长度)