怎样建立https连接

nochoise 2003-11-25 03:58:41
建立http连接,形式如下:
file=(CHttpFile*)session.OpenURL(URL);
file->QueryInfoStatusCode(dwStatusCode );
这样可以得到dwStatusCode 。

请问怎样建立https的连接,也可以得到dwStatusCode .

多谢!!
再线等!!
...全文
297 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZHENG017 2004-02-26
  • 打赏
  • 举报
回复
直接使用socket不可以么?看看我经过squid的代理访问的源程序:
{
SOCKET sConnect2Proxy = socket(AF_INET,SOCK_STREAM,0);
if (sConnect2Proxy == INVALID_SOCKET)
return -2;
char chDataBuf[8192] = "";
struct sockaddr_in ProxyAddr = {0};
ProxyAddr.sin_family = AF_INET;
ProxyAddr.sin_addr .S_un .S_addr = inet_addr(chProxyServerAddr);
ProxyAddr.sin_port = htons(iProxyServerPort);

char chTempString[256] = "rw030:zheng017";

if (0 == connect(sConnect2Proxy,(const sockaddr*)&ProxyAddr,sizeof(sockaddr_in)))
{
sprintf(chDataBuf,"get http://expert.csdn.net/Expert/topic/2493/2493388.xml?temp=.1081049 HTTP/1.1\r\n");
CBase64Utils base64;
#ifdef PROXY_NEED_AUTH
lstrcat(chDataBuf,"Proxy-Authorization: Basic ");
lstrcat(chDataBuf,base64.Encode(chTempString,lstrlen(chTempString)));
#endif
lstrcat(chDataBuf,"\r\n\r\n");
int iTransCnt = 0;
iTransCnt = send(sConnect2Proxy,chDataBuf,lstrlen(chDataBuf),0);
if (iTransCnt >0)
{
recv(sConnect2Proxy,chDataBuf,8192,0);
printf("%s",chDataBuf);
}
}
shutdown(sConnect2Proxy,2);
closesocket(sConnect2Proxy);
return 0;
}
ZHENG017 2004-02-26
  • 打赏
  • 举报
回复
兄弟,楼主是要返回CHttpFile::QueryInfoStatusCode的结果码。比方说
200 URL located, transmission follows
400 Unintelligible request
404 Requested URL not found
405 Server does not support requested method
500 Unknown server error
503 Server capacity reached
这些结果三。关ssl什么事?你是不是回复贴子贴错贴子了?
badcrow 2004-02-26
  • 打赏
  • 举报
回复
使用https://www.xxx.xxx/somepath/somepages
这个url进行连接,另:直接使用socket是不可能的
除非在window上使用sspi,在linux上使用openssl。

window:
在msdn中查找sspi关键字,这一套接口是可以进行ssl连接的,
然后你可以得到 http服务器传回来的信息了。
msdn中有例子
linux:
使用openssl提供的共享库,openssl也有测试的例子程序,自己找找好了。
badcrow 2004-02-26
  • 打赏
  • 举报
回复
使用https://www.xxx.xxx/somepath/somepages
这个url进行连接,另:直接使用socket是不可能的
除非在window上使用sspi,在linux上使用openssl。
ZHENG017 2004-02-26
  • 打赏
  • 举报
回复
比方说直接用socket连接www.csdn.net的80端口,连上后发送get http://expert.csdn.net/Expert/topic/2493/2493388.xml?temp=9.238833E-02 HTTP/1.1\r\n,然后recv.在返回的字符串里应该返回http/1.0 200....
这儿的200就是你需要的dwStatusCode
hxy2003 2004-02-26
  • 打赏
  • 举报
回复
我也想知道,为什么在服务器里装了SSL后就不行了呢.
CInternetSession *pSession; //网络环境句柄
CHttpConnection* pHttp; //http网络环境句柄
CHttpFile* pHttpFile; //网络http文件句柄

try
{
pSession = new CInternetSession;//分配一个网络环境

pHttp = pSession->GetHttpConnection(ServerIP,//连接到http服务器端
intHttpPort,
UserName,
HTTPPassword);


pHttpFile = pHttp->OpenRequest(CHttpConnection::HTTP_VERB_GET,//设置发送请求http头
FileUrl,
NULL,
1,
NULL,
NULL,
INTERNET_FLAG_MAKE_PERSISTENT);
pHttpFile->SendRequest();//发送请求http头


最后一句这里说现错误,返回请求证书之类的东西啊..多谢

ahao 2004-02-26
  • 打赏
  • 举报
回复
to 楼上,你知道什么是https吗?
hxy2003 2004-02-25
  • 打赏
  • 举报
回复
我也想知啊.多谢如果你知的话说给我听吧.

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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