手机作为客户端,通过访问url地址向服务器端发送带有参数的 post 请求,但是没有参数名称。
在服务器端需要接受到这些参数,如下代码
                    StringBuffer info=new java.lang.StringBuffer();
    InputStream in=request.getInputStream();
    BufferedInputStream buf=new BufferedInputStream(in);
   
    String query="";
    byte[] buffer=new byte[1024]; 
    int iRead;
    while((iRead=buf.read(buffer))!=-1)   
    {
     info.append(new String(buffer,0,iRead,"UTF-8"));
    } 
System.out.println("info=="+info);
这是我在服务端的接收代码,但是 info 打印出来的是乱码,求大侠指点.....

解决方案 »

  1.   

    info.append(new String(buffer,0,iRead));
      

  2.   

    for(byte i:buffer){
                System.out.println(Integer.toBinaryString(Byte.valueOf(i).intValue()).substring(24));
            }//比如:String s="毛";
            byte[] b=s.getBytes();
            for(byte i:b){
                System.out.println(Integer.toBinaryString(Byte.valueOf(i).intValue()).substring(24));
            }应该输出:
    11100110
    10101111
    10011011
    这个是“毛”字的2进制utf8码,3个字节
      

  3.   

    谢谢 大家,问题解决了。我是这样做的//得到二进制文件流 并将其封装到缓冲流 和 Data流中
    InputStream is = request.getInputStream();
    DataInputStream in = new DataInputStream(new BufferedInputStream(is));
    //从二进制流中 读取一 Byte 并将其装换成 十六进制
    int sum1 = in.readByte(); 
    String firValue = Integer.toHexString(sum1);
    System.out.println("第一个十六进制的值是:"+firValue);