HTTP post请求问题

xgch1223 2010-01-26 07:34:33
按如下动作,服务器应该返回John,为何返回的是No Accept??

客户端Post提交动作:
CString strHeaders =
_T("Content-Type: application/x-www-form-urlencoded");
// URL-encoded form variables -
CString strFormData = _T("name=John");

CInternetSession session;
CHttpConnection* pConnection =
session.GetHttpConnection(_T("localhost"));

CHttpFile* pFile =
pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST,
_T("default.aspx"));

pFile->AddRequestHeaders(strHeaders);

BOOL result = pFile->SendRequest(NULL,0,
(LPVOID)(LPCTSTR)strFormData, strFormData.GetLength());
//
char szBuffer[1024];
int nLen=pFile->Read(szBuffer,1024);
szBuffer[nLen]=0;

pFile->Close();
pConnection->Close();
delete pFile;
delete pConnection;

服务器响应:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string userName;

userName = (string)Request.Form["name"];

if (userName != null)
Response.Write(userName);
else
Response.Write("No accept!");
}
}
...全文
106 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xgch1223 2010-01-28
  • 打赏
  • 举报
回复
OK了,是 http post 请求编码没有设置导致的错误!
感谢caozhy!!
Ezy_DK 2010-01-27
  • 打赏
  • 举报
回复
request.Pamars["username"]试试
threenewbee 2010-01-27
  • 打赏
  • 举报
回复
很明显了。

name=John只发送了第一个字母n
xgch1223 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 caozhy 的回复:]

随便。比如httplook
[/Quote]
抓包数据如下
1.POST
POST /default.aspx HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: MySession
Host: localhost
Content-Length: 9
Cache-Control: no-cache

n

2.100 Continue
HTTP/1.1 100 Continue
Server: Microsoft-IIS/5.1
Date: Wed, 27 Jan 2010 08:30:51 GMT
X-Powered-By: ASP.NET

3.200 OK
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.1
Date: Wed, 27 Jan 2010 08:31:12 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 497

No Accept!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>
Untitled Page
</title></head>
<body>
<form name="form1" method="post" action="default.aspx" id="form1">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzgzNDMwNTMzZGQrNYm9prN02TlqGkAMqRo0zXNYtw==" />

<div>

</div>
</form>
</body>
</html>
threenewbee 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xgch1223 的回复:]
用什么工具抓包啊
[/Quote]
随便。比如httplook
xgch1223 2010-01-26
  • 打赏
  • 举报
回复
用什么工具抓包啊
threenewbee 2010-01-26
  • 打赏
  • 举报
回复
抓包看看。

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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