OpenURL
OpenURL即“开放链接”,一种解决不同的数字资源系统互操作、进行资源整合的方法,也是一项的技术标准。开放链接(OpenURL)是一种附带有元数据信息和资源地址信息的“可运行”的URL。可用来解决二次文献数据库到原文服务的动态链接问题,服务提供方(通常是图书馆)维护的链接解析器能够在相关服务网页上动态生成开放链接。
其函数解析如下:
CInternetSession::OpenURL的问题.
CStdioFile* OpenURL( LPCTSTR pstrURL, //文件URL地址
DWORD dwContext = 1, //上下文ID
DWORD dwFlags = INTERNET_FLAG_TRANSFER_ASCII, //标记
LPCTSTR pstrHeaders = NULL, //发送到服务器的数据头
DWORD dwHeadersLength = 0 );//发送到服务器的数据头长度
dwFlags可以为:
INTERNET_FLAG_RELOAD 强制重读数据
INTERNET_FLAG_DONT_CACHE 不保存到缓存
INTERNET_FLAG_TRANSFER_ASCII 使用文本数据
INTERNET_FLAG_TRANSFER_BINARY 使用二进制数据
CInternetSession session; //会话期对象)
CHttpConnection* pServer = NULL; //指向服务器地址(URL)
CHttpFile * pHttpFile = NULL;//HTTP文件指针
CString strServerName; //服务器名
CString strObject; //查询对象名(http文件)
INTERNET_PORT nPort; //端口
DWORD dwServiceType; //服务类型
DWORD dwHttpRequestFlags = //请求标志
//INTERNET_FLAG_EXISTING_CONNECT
INTERNET_FLAG_NO_AUTO_REDIRECT;
const TCHAR szHeaders[]=_T("Accept: text/*
User-Agent:HttpClient
");
BOOL OK=AfxParseURL( //词法分析
pURL, //被分析URL串
dwServiceType, //服务类型,ftp,http等
strServerName, //服务器名
strObject, //URL中被查询对象
nPort ); //URL指定的端口,可能为空
OK=OK && //本例只考虑http协议