登录一个网站,求助,焦急

lbjfeng 2009-03-29 06:03:31
<form name="myform" action="http://192.168.2.167/mypage/index.php" method="post">
<input type="text" name="login" value="">
<input type ="password" name="passwd" value="">
<input type ="submit" name ="submit" value="提交">
</form>

用这个代码可以登录一个网站,并且进入相应的自己的页面。
提交的页面是在http://192.168.2.167/,提交以后,必须点击一个连接才能进入相应的mypage

求各位老大帮忙下,看看应该如何用C才实现这个功能。小弟感激……
用C或者C++自己输入用户名密码,如果正确,则直接进入mypage,自己的页面

...全文
231 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbjfeng 2009-04-01
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 liliangbao 的回复:]
晕了!LZ哇!
没有办法了,并不是什么都知道的~
[/Quote]

俺们对csdn相当相当的失望……

失望的都快已经绝望……
liliangbao 2009-03-31
  • 打赏
  • 举报
回复
晕了!LZ哇!
没有办法了,并不是什么都知道的~
lbjfeng 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 whhvc 的回复:]
很简单 写个socket转发程序 将ie和网站的传输数据截获,都是文本,用socket再发一遍就ok了
[/Quote]
兄弟,大哥,你说的so easy。
但是,能否具体点那……

兄弟我是新手阿……

现在问题最大的是:我截获的文本,我不知道到底发送那些,能不能给个例子?例如sohu就好,
Paradin 2009-03-30
  • 打赏
  • 举报
回复
帮顶
希望做过的人能来帮你
up
lbjfeng 2009-03-30
  • 打赏
  • 举报
回复
自己给自己再顶一次
wudeshou82666 2009-03-30
  • 打赏
  • 举报
回复
帮顶
希望做过的人能来帮你
lbjfeng 2009-03-30
  • 打赏
  • 举报
回复
各位,帮顶者散分……

我晕了。那么大的csdn,难道还没有能回答这种问题的人么……
Dinelgua 2009-03-30
  • 打赏
  • 举报
回复
帮兄弟顶了
热学沸腾56 2009-03-30
  • 打赏
  • 举报
回复
帮顶!接分!
lbjfeng 2009-03-30
  • 打赏
  • 举报
回复

BOOL PostRequest(LPCTSTR lpszURL, // 如:www.wantsoft.com
LPCTSTR lpszObjectName, // 如index.asp
LPCTSTR lpszOptionalData, // 如:username=chrys&password=MyPassword
LPCTSTR lpszReferer, // 如:/modify-new.htm
CString &csResponse)
{

BOOL bRet = FALSE;
CString csHeaders, csOptionalData = lpszOptionalData, csContentLength;
csContentLength.Format ( "Content-Length: %d\n", csOptionalData.GetLength());
FILE *fp = fopen("rt.html","w+");


csHeaders += "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*\n";
csHeaders += "Referer: http://";
csHeaders += lpszURL;
csHeaders += lpszReferer;
csHeaders += "\n";
csHeaders += "Accept-Language: zh-cn,en-us;q=0.5\n";
csHeaders += "Content-Type: application/x-www-form-urlencoded\n";
csHeaders += "Proxy-Connection: Keep-Alive\n";
csHeaders += "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322)\n";
csHeaders += "Host: ";
csHeaders += lpszURL;
csHeaders += "\n";
csHeaders += csContentLength;
csHeaders += "Pragma: no-cache\n";
csHeaders += "\r\n";

CHttpFile* pMyHttpFile = NULL;
CHttpConnection* pConnection = NULL;
CInternetSession mySession;
try
{
mySession.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT, 10*1000);
pConnection = mySession.GetHttpConnection(_T(lpszURL));
pMyHttpFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, lpszObjectName);
//
CString str;
pMyHttpFile->ReadString(str);
//
if ( pMyHttpFile->SendRequest(csHeaders,
(LPVOID)(LPCTSTR)csOptionalData, csOptionalData.GetLength()))
{
DWORD dwStatus;
DWORD dwBuffLen = sizeof(dwStatus);
pMyHttpFile->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen);
int ir = GetLastError();
if ( HTTP_STATUS_OK == dwStatus )
{
csResponse.Empty ();
CString myData;
while ( pMyHttpFile->ReadString ( myData ) )
{
csResponse += myData;

}
bRet = TRUE;
}
}
}
catch ( CInternetException* pEx )
{
bRet = FALSE;
TCHAR szErr[1024]={0};
pEx->GetErrorMessage(szErr,1024);
pEx->Delete();
}

if ( pMyHttpFile )
{
pMyHttpFile->Close();
delete pMyHttpFile;
}
if ( pConnection )
{
pConnection->Close();
delete pConnection;
}
mySession.Close();

fprintf(fp,"%s",csResponse.GetBuffer(csResponse.GetLength()));
fclose(fp);
return bRet;
}




那个大哥帮忙解释一下这个函数各个参数,或者是用这个函数帮我写一下登录我上面说的那个页面的过程也许行

我又追加了一百,大哥们,帮忙了
lbjfeng 2009-03-30
  • 打赏
  • 举报
回复

BOOL PostRequest(LPCTSTR lpszURL, // 如:www.wantsoft.com
LPCTSTR lpszObjectName, // 如index.asp
LPCTSTR lpszOptionalData, // 如:username=chrys&password=MyPassword
LPCTSTR lpszReferer, // 如:/modify-new.htm
CString &csResponse)
{

BOOL bRet = FALSE;
CString csHeaders, csOptionalData = lpszOptionalData, csContentLength;
csContentLength.Format ( "Content-Length: %d\n", csOptionalData.GetLength());
FILE *fp = fopen("rt.html","w+");


csHeaders += "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*\n";
csHeaders += "Referer: http://";
csHeaders += lpszURL;
csHeaders += lpszReferer;
csHeaders += "\n";
csHeaders += "Accept-Language: zh-cn,en-us;q=0.5\n";
csHeaders += "Content-Type: application/x-www-form-urlencoded\n";
csHeaders += "Proxy-Connection: Keep-Alive\n";
csHeaders += "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322)\n";
csHeaders += "Host: ";
csHeaders += lpszURL;
csHeaders += "\n";
csHeaders += csContentLength;
csHeaders += "Pragma: no-cache\n";
csHeaders += "\r\n";

CHttpFile* pMyHttpFile = NULL;
CHttpConnection* pConnection = NULL;
CInternetSession mySession;
try
{
mySession.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT, 10*1000);
pConnection = mySession.GetHttpConnection(_T(lpszURL));
pMyHttpFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, lpszObjectName);
//
CString str;
pMyHttpFile->ReadString(str);
//
if ( pMyHttpFile->SendRequest(csHeaders,
(LPVOID)(LPCTSTR)csOptionalData, csOptionalData.GetLength()))
{
DWORD dwStatus;
DWORD dwBuffLen = sizeof(dwStatus);
pMyHttpFile->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen);
int ir = GetLastError();
if ( HTTP_STATUS_OK == dwStatus )
{
csResponse.Empty ();
CString myData;
while ( pMyHttpFile->ReadString ( myData ) )
{
csResponse += myData;

}
bRet = TRUE;
}
}
}
catch ( CInternetException* pEx )
{
bRet = FALSE;
TCHAR szErr[1024]={0};
pEx->GetErrorMessage(szErr,1024);
pEx->Delete();
}

if ( pMyHttpFile )
{
pMyHttpFile->Close();
delete pMyHttpFile;
}
if ( pConnection )
{
pConnection->Close();
delete pConnection;
}
mySession.Close();

fprintf(fp,"%s",csResponse.GetBuffer(csResponse.GetLength()));
fclose(fp);
return bRet;
}




或者是看看这个解释也行……这个函数那几个参数我一直用的不好……不知道每个到底是什么意思。

看对方的解释也不是太清除……
最后是那个大哥帮忙用我上面说的写个小例子……
注意,是post方式的
lbjfeng 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 Kvci 的回复:]
http://192.168.2.167/mypage/index.php?login=帐户名&passwd=密码
[/Quote]

大哥,你这个……问题是你的这种写法是get方法才行的吧?
而这个上面人家methos写的是post^^


csdn,大哥们,帮忙啦
whhvc 2009-03-30
  • 打赏
  • 举报
回复
很简单 写个socket转发程序 将ie和网站的传输数据截获,都是文本,用socket再发一遍就ok了
pega_windy 2009-03-30
  • 打赏
  • 举报
回复
等待高手!
向良玉 2009-03-30
  • 打赏
  • 举报
回复
学习学习
原来C语言博大精深
学好学精真不容易
wuyanchao 2009-03-30
  • 打赏
  • 举报
回复
我也在学网络编程,帮楼主顶,我也碰到过和lz相同的经历
lbjfeng 2009-03-30
  • 打赏
  • 举报
回复
自己再次顶下……
分不清referer,host以及object那些灯等代表的地址的区别是什么……
Kvci 2009-03-29
  • 打赏
  • 举报
回复
http://192.168.2.167/mypage/index.php?login=帐户名&passwd=密码
lbjfeng 2009-03-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 Kvci 的回复:]
干吗要用C或者C++?
用其他很多方法可以实现
ajax很简单
或者WEBBROSWER控件
[/Quote]

我说的片面了一点……用browser控件也成……但是,我非常非常的不了解。虽然我也看了……但是很多参数用的不明不白.
大哥,能不能帮我写个具体的例子……因为是那些参数的问题,请非常的具体的例子。
Kvci 2009-03-29
  • 打赏
  • 举报
回复
干吗要用C或者C++?
用其他很多方法可以实现
ajax很简单
或者WEBBROSWER控件
加载更多回复(4)

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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