http方式上传数据Post时,对数据有什么格式要求吗?

RedGuest 2002-05-10 08:27:45
例如,我要登陆一个网站
我的做法

Post("www.mysite.com", "username=myname&password=mypassword")

遗憾的是,都失败了

请问,对url,和数据有什么样的格式要求?

有这方面的资料吗?
...全文
478 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wwch99 2002-05-21
post方式啊!我的问题解决了!
post的数据必须是char *类型!(vc中)
回复
wabc 2002-05-15
gz
回复
RedGuest 2002-05-11
我Post后,服务器返回是: Input Not Valid

好烦,不过,我是通过代理上网的,哦,可能是代理的原因:)

--------------------------------------------------------------------
楼上的,你在那里指定的上传方式啊?
HttpSendRequest(....到底是Get, 还是Post?

回复
wwch99 2002-05-11
兄台,大家同病相连啊!我要登陆login.mail.sohu.com我的服务器几nserver是
login.mail.sohu.com在openrequest的szpath是/chkpwd.php我可以连上服务器!可是,我发送的数据是“UserName=myname&Password=mypwd&x=28&y=4"
但是,我用sniffer抓来的不是我要post!导致服务器说我的用户名是空!更在ie登陆时用空用户名登陆的效果是一样的!
CString m_optional=“UserName=myname&Password=mypwd&x=28&y=4"
CString szHeaders="Content-Type:application/x-www-form-urlencoded\r\nAccept-Encoding:gzip,deflate\r\nProxy-Connection:Keep-Alive\r\nUser-Agent:Mozilla/4.0(compatible;MSIE 5.01;Windows NT 5.0)";
//
BOOL bSendRequest=::HttpSendRequest(hHttpFile,
szHeaders, szHeaders.GetLength(),
&m_optional,
m_optional.GetLength());
帮忙看看有什么问题啊?
回复
RedGuest 2002-05-11
意思我是懂了,可是我是在C++Builder中做的
它直接提供一个方法Post(url, Data)
可以,我怎么也成功不了,不知道如何是好
回复
蒋晟 2002-05-10
HOWTO: Simulate a Form POST Request Using WinInet

Q165298
Here is a snippet of code that uses the MFC WinInet classes to simulate a Form POST request:


CString strHeaders =
_T("Content-Type: application/x-www-form-urlencoded");
// URL-encoded form variables -
// name = "John Doe", userid = "hithere", other = "P&Q"
CString strFormData = _T("name=John+Doe&userid=hithere&other=P%26Q");

CInternetSession session;
CHttpConnection* pConnection =
session.GetHttpConnection(_T("ServerNameHere"));
CHttpFile* pFile =
pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST,
_T("FormActionHere"));
BOOL result = pFile->SendRequest(strHeaders,
(LPVOID)(LPCTSTR)strFormData, strFormData.GetLength());
Without MFC, the same code translates to straight SDK calls as follows:

static TCHAR hdrs[] =
_T("Content-Type: application/x-www-form-urlencoded");
static TCHAR frmdata[] =
_T("name=John+Doe&userid=hithere&other=P%26Q");
statuc TCHAR accept[] =
_T("Accept: */*");

// for clarity, error-checking has been removed
HINTERNET hSession = InternetOpen("MyAgent",
INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
HINTERNET hConnect = InternetConnect(hSession, _T("ServerNameHere"),
INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1);
HINTERNET hRequest = HttpOpenRequest(hConnect, "POST",
_T("FormActionHere"), NULL, NULL, accept, 0, 1);
HttpSendRequest(hRequest, hdrs, strlen(hdrs), frmdata, strlen(frmdata));
// close any valid internet-handles



回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2002-05-10 08:27
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……