免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2782 | 回复: 1
打印 上一主题 下一主题

HTTP请求POST方法参数问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-06 14:36 |只看该作者 |倒序浏览
我想用socket向http服务器发送请求,模拟普通的页面递交表单的过程。

环境是:服务器用的JSP服务器TOMCAT 5.0。
JSP页面的form表单为:
<form name="form1" method="post" action="<%=basePath%>/servlet/IndexServlet">
             username:<input type="text" name="username" id="textfield">
             password:<input type="text" name="password" id="textfield">
             <input type="submit" name="button" id="button" value="submit">
</form>

现在想使用socket 模拟浏览器递交HTTP请求
SOCKET代码(只贴HTTP请求头部,多余的就没贴出来)
sprintf(request,
        "POST %s HTTP/1.1\r\nAccept: */*\r\nHost: %s:%d\r\nConnection: Close\r\n\r\nusername=hello&password=world"
        , host_file, ip, port); //create http header
这个代码或许看起来比较累,不过看运行结果就很方便了
运行结果:
POST http://192.168.1.154:8888/httpStudy/servlet/IndexServlet HTTP/1.1
Accept: */*
Host: 192.168.1.154:8888
Connection: Close  //http请求的头部

username=hello&password=world //带的参数
request length = 161
send = 161 //这说明所有的请求数据都已经递交给了服务器
HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Type: text/html;charset=ISO-8859-1
Date: Thu, 06 May 2010 06:32:57 GMT
Server: Apache-Coyote/1.1
Connection: close //响应的头部

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
  <HEAD><TITLE>A Servlet</TITLE></HEAD>
  <BODY>
    username = null, password = null, using the POST method
  </BODY>
</HTML> //响应的正文

问题是:参数部分没有被服务器获取,服务器端或者请求参数的代码是JAVA代码:
String username = (String)request.getParameter("username");
String password = (String)request.getParameter("password");

不知道有谁能知道问题出在哪里?感谢您的帮助

论坛徽章:
0
2 [报告]
发表于 2010-05-06 16:39 |只看该作者
刚在其它论坛上被人指导了下,缺少了
Content-Type: application/x-www-form-urlencoded
Content-Length: 27
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP