亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3324 | 回復: 0
打印 上一主題 下一主題

Linux下Socket登陸HTTP服務器 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-02-23 16:22 |只看該作者 |倒序瀏覽
我想在Linux下使用Socket實現(xiàn)遠程登陸一個HTTP服務器的功能。
找到了一份原來在Windows下實現(xiàn)的代碼:

  1.        static TCHAR hdr_agent[] = _T("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 1.1.4322)");

  2.        static char * strPostData = "Host=192.168.100.163&LoginName=dGVzdA%3D%3D&LoginPassword=MTExMQ%3D%3D&LoginNameX=test&LoginPasswordX=1111";
  3.        HINTERNET hSession   =   NULL,     
  4.                 hConnect   =   NULL,   
  5.                 hRequest   =   NULL;   

  6.         //   Use   WinHttpOpen   to   obtain   a   session   handle.   
  7.         hSession   =   WinHttpOpen(   hdr_agent,      
  8.                 WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,   
  9.                 WINHTTP_NO_PROXY_NAME,     
  10.                 WINHTTP_NO_PROXY_BYPASS,   0   );   

  11.         if(   hSession   )   
  12.                 hConnect   =   WinHttpConnect(   hSession,   L"192.168.100.163",   INTERNET_DEFAULT_HTTPS_PORT,   0   );   
  13.         

  14.         //====================================================================================
  15.         if(   hConnect   )   
  16.                 hRequest   =   WinHttpOpenRequest(   hConnect,   L"POST",   L"/SSL/user/PasswordUserLogin",   
  17.                 NULL,   WINHTTP_NO_REFERER,     
  18.                 WINHTTP_DEFAULT_ACCEPT_TYPES,     
  19.                 WINHTTP_FLAG_SECURE   );   

  20.         DWORD dwSSLFlag;
  21.         dwSSLFlag = SECURITY_FLAG_IGNORE_UNKNOWN_CA;
  22.         dwSSLFlag |= SECURITY_FLAG_IGNORE_CERT_DATE_INVALID;
  23.         dwSSLFlag |= SECURITY_FLAG_IGNORE_CERT_CN_INVALID;
  24.         dwSSLFlag |= SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE;

  25.         WinHttpSetOption(hRequest, WINHTTP_OPTION_SECURITY_FLAGS, &dwSSLFlag, sizeof(dwSSLFlag));

  26.         //   Send   a   request.   
  27.         if(   hRequest   )   
  28.                 bResults   =   WinHttpSendRequest(   hRequest,   
  29.                 WINHTTP_NO_ADDITIONAL_HEADERS,   0,   
  30.                 (LPVOID)strPostData,   strlen(strPostData),     
  31.                 strlen(strPostData),   0   );   
復制代碼
其中LoginName和LoginPassword是對LoginNameX和LoginPasswordX的Base64編碼。
我參考這個寫了一個請求:
  1.        static char *REQUEST_1 =
  2.          "POST /SSL/user/PasswordUserLogin HTTP/1.1\r\n"
  3.          "Content-Length:200\r\n"
  4.          "User-Agent:Mozilla/4.0\r\n"
  5.          "Host:%s&LoginName=dGVzdA%3D%3D&LoginPassword=MTExMQ%3D%3D&LoginNameX=test&LoginPasswordX=1111\r\n\r\n"
復制代碼
但是我的請求總是得不到正確的響應。Windows下的Socket我不怎么會,大家?guī)兔纯词悄膶懙貌粚ΑVx謝~

[ 本帖最后由 quxianyang 于 2009-2-23 16:23 編輯 ]
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP