用SOCKET发送POST请求后,怎么得到服务器返回的数据
用Socket向一个登陆页面发送一个POST请求,其中包含用户信息,
我怎样得到服务器返回的数据呢,我需要得到Cookie数据用于后续Get请求。
问题点数:100、回复次数:11Top
1 楼CW_Wei(朗 月)回复于 2006-05-06 11:47:00 得分 0
up
Top
2 楼rigel2001(大宝)回复于 2006-05-06 16:37:30 得分 0
Cookie已经得到了,在后续请求中怎么返回给服务器,因为在第一次POST的返回信息中我得到两行Set-Cookie,我可否在header中写两行Cookie:。。。。。。呢Top
3 楼smzh8(QQ:420827644)回复于 2006-05-06 17:46:15 得分 0
用recv接收啊Top
4 楼bobcowwocb()回复于 2006-10-11 13:51:39 得分 0
cookies数据不是由服务器上的程序来读取的吗?你自己本地程序也想读的话直接去系统目录下面找到相关的txt文件读取它就行啦。
也可以由你服务器端的程序读取cookies数据后返回给调用页面就行了。Top
5 楼akirya(坏[其实偶不是什么所谓的坏人])回复于 2006-10-11 14:52:10 得分 30
用浏览器做一次同样操作,抓包。看看浏览器是怎么实现的
当然可以查查rfc中的http协议。Top
6 楼sdcer(独钓雪)回复于 2006-10-12 13:52:59 得分 10
就是recv就可以了。
你的程序send()后,就recv,就可以了。
至于接收多少 ,你要看Content-length:字段的值。
Top
7 楼bobcowwocb()回复于 2006-10-19 16:30:47 得分 50
在MFC环境下面:
#include <afxinet.h>
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());
如果想要得到返回的信息,则这样:
CString strResult,tmpstr;
while(pFile->ReadString(tmpstr))
strResult+=(tmpstr+"\r\n");
AfxMessageBox(strResult);
Top
8 楼ctu_85(青灯照壁人初睡,冷雨敲窗被未温)回复于 2006-10-19 16:49:20 得分 0
用数据报,无连接通信使用函数如下
WSAStartup()
socket()
accept()
WSASendto()
中间不需要邦定
Top
9 楼ctu_85(青灯照壁人初睡,冷雨敲窗被未温)回复于 2006-10-19 16:49:34 得分 0
也可以用NMHTTP控件,使用非常的简单。Top
10 楼baojian88888(机器人)回复于 2006-10-19 17:17:55 得分 10
用浏览器做一次同样操作,抓包。看看浏览器是怎么实现的Top
11 楼wzzww(无知者无畏)(此人已死)回复于 2006-11-17 16:21:02 得分 0
POST结束之后要发送!表示这次传输结束,服务器才会返回数据Top




