【问题标题】:http post request helphttp post请求帮助
【发布时间】:2011-05-23 07:53:44
【问题描述】:

我在 php 中做了一个简单的网页来测试来自 telnet 的 post 请求。 这是网页的代码(example.php):

<html>
<body>
<form method="post" action="example.php>">
Your Name:<input type="text" size="12" maxlength="12" name="Name"><br />
<input type="submit" value="submit" name="submit">
</form> 
<?php echo $_POST["Name"]; ?>
</body>
</html>

这适用于浏览器,但我想通过 telnet 对其进行测试。我试过了:

telnet localhost 80
POST example.php HTTP/1.0
Host: localhost
Content-Type: text/html; charset=iso-8859-1
Content-Length: 11

Name=myname

但它不起作用....有什么帮助吗?

【问题讨论】:

  • 要么查看 Fiddler 或 Wireshark,看看真正的 POST 数据包包含什么,要么更深入地阅读 RFC ;)
  • “但它不起作用....” 抱歉,但这不是一个好的错误消息。 - 告诉我们更多关于系统的反应和行为。检查网络服务器访问/错误日志,等等。
  • 是的,你是对的......我会尝试更深入地挖掘 :) 无论如何,来自服务器的响应是 HTTP/1.1 400 错误请求
  • 我推荐 curl,它对测试 HTTP 请求更加用户友好:curl http://localhost/example.php -d 'Name=myname'

标签: php http httprequest


【解决方案1】:

Konerak 是对的。看看一个真实的请求。例如内容类型。我刚刚试了一下,得到了

Content-Type: application/x-www-form-urlencoded

您还缺少第二个表单域:您的按钮。但我想这并不重要......

Name=myname&submit=submit

查看http://en.wikipedia.org/wiki/POST_%28HTTP%29 了解更多详细信息以及您研究的良好起点...

更新:试试

POST /example.php HTTP/1.0
Host: localhost
Content-Type: application/x-www-form-urlencoded
Content-Length: 11

Name=myname

至少,这对我有用...

【讨论】:

    【解决方案2】:

    改变你的内容类型

    POST /example.php HTTP/1.0
    Host: localhost
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 11
    
    Name=myname
    

    【讨论】:

      猜你喜欢
      • 2012-01-15
      • 1970-01-01
      • 2018-07-29
      • 1970-01-01
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 2011-10-14
      • 2020-11-21
      相关资源
      最近更新 更多