SOCKET发送HTTP请求问题

yanglilibaobao 2006-11-28 03:58:22
[转载] http://www.javaeye.com/topic/35959

目的:客户端用socket连接web服务器发送http请求,访问一个Servlet /service .并接收servlet的相应数据。
我客户端代码可以访问到servlet可是servlet用request.getPrameter("data") 取不到请求内容.
请指点:代码如下:

public class Client {
public static void main(String[] arg) {
Socket socket;
try {
socket = new Socket("10.20.64.203", 7001);
OutputStream os = socket.getOutputStream();
InputStream ins = socket.getInputStream();
String data= getXmlString();
StringBuffer sb = new StringBuffer();
sb.append("POST /service HTTP/1.1\r\n");// 注意\r\n为回车换行
sb.append("Accept-Language: zh-cn\r\n");
sb.append("Connection: Keep-Alive\r\n");
sb.append("Host:localhost\r\n");
sb.append("Content-Length:11\r\n");
sb.append("\r\n");
sb.append("data=abc\r\n");
sb.append("\r\n");

// 接收Web服务器返回HTTP响应包
os.write(sb.toString().getBytes());
os.flush();
byte[] b = new byte[1000];
ins.read(b); //读取http头
InputStreamReader ireader = new InputStreamReader(ins);
java.io.BufferedReader reader = new java.io.BufferedReader(ireader);
String s = reader.readLine(); //读取内容
System.out.println("response:"+s);
System.out.println(reader.readLine());
System.out.println(reader.readLine());
System.out.println(reader.readLine());
System.out.println(reader.readLine());
System.out.println(reader.readLine());
System.out.println(reader.readLine());

} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
...全文
203 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mlb2729 2007-01-30
  • 打赏
  • 举报
回复
頂...........
alexlee002 2006-12-27
  • 打赏
  • 举报
回复
设置一下content-type, 设置成表单格式的

259

社区成员

发帖
与我相关
我的任务
社区描述
其他产品/厂家
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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