java如何接收手机post过来的无参数信息?

饭饭 2012-05-29 09:13:05
手机作为客户端,通过访问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 打印出来的是乱码,求大侠指点.....
...全文
268 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
饭饭 2012-05-30
  • 打赏
  • 举报
回复
谢谢 大家,问题解决了。我是这样做的

//得到二进制文件流 并将其封装到缓冲流 和 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);
wang7535067 2012-05-29
  • 打赏
  • 举报
回复
info.append(new String(buffer,0,iRead));
饭饭 2012-05-29
  • 打赏
  • 举报
回复
自己顶
饭饭 2012-05-29
  • 打赏
  • 举报
回复
自己顶
饭饭 2012-05-29
  • 打赏
  • 举报
回复
自己顶一下
无名老僧 2012-05-29
  • 打赏
  • 举报
回复


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个字节
hunzizcc 2012-05-29
  • 打赏
  • 举报
回复
按位打印字节数组看看
无名老僧 2012-05-29
  • 打赏
  • 举报
回复
建议按位打印字节数组,看看是否第2第3个参数需要调整
饭饭 2012-05-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

info.append(new String(buffer,0,iRead));
[/Quote]

大哥,改变字符集,好像也不行啊

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧