当前位置:首页 > Windows程序 > 正文

WINHTTP的API接口说明。

2021-05-25 Windows程序

BOOL WINAPI WinHttpAddRequestHeaders(
  _In_  HINTERNET hRequest,
  _In_  LPCWSTR pwszHeaders,
  _In_  DWORD dwHeadersLength,
  _In_  DWORD dwModifiers
);
作用:加入一个HTTP的请求头域。


參数说明:
hRequest [in]
一个HINTERNET句柄通过调用WinHttpOpenRequest返回。

pwszHeaders [in]
请求的头域字符串,,每一个头域(多个头域以)使用回车换行(\r\n)结束

dwHeadersLength [in]
无符号长整型变量,指向pwszHeaders的长度,假设该參数为(ulong)-1L时,自己主动以"/0"结束来计算pwszHeaders的长度。

dwModifiers [in]
头域的改动模式。包含例如以下值:
WINHTTP_ADDREQ_FLAG_ADD       加入一个头域,假设头域存在时值将被新加入的值替换。

与WINHTTP_ADDREQ_FLAG_REPLAC一起使用
WINHTTP_ADDREQ_FLAG_ADD_IF_NEW     加入一个不存在头域,假设该头域存在则返回一个错误。


WINHTTP_ADDREQ_FLAG_COALESCE     将同名的头域进行合并。


WINHTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA   合并同名的头域,值使用逗号隔开。


WINHTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON  合并同名的头域,值使用分号隔开。
WINHTTP_ADDREQ_FLAG_REPLACE      替换和删除一个头域,假设值为空,则删除,否则被替换。

返回值为假时。使用getlasterror来得到错误信息。


err code:
ERROR_WINHTTP_INCORRECT_HANDLE_STATE   请求不能被运行,由于句柄的状态不对
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE    请求的句柄类型不对
ERROR_WINHTTP_INTERNAL_ERROR     内部错误
ERROR_NOT_ENOUGH_MEMORY       没有足够的内存来完毕操作。

BOOL WinHttpCheckPlatform(void);
作用:推断是否是微软支持的平台。
返回值:TRUE支持。否则不支持。


BOOL WINAPI WinHttpCloseHandle(
  _In_  HINTERNET hInternet
);
作用:关闭一个HINTERNET句柄。


參考:
hInternet [in]
待关闭HINTERNET的句柄。

当返回false时能够调用getlasterror来得到相关信息。
err code:
ERROR_WINHTTP_SHUTDOWN       winhttp已关闭或卸载
ERROR_WINHTTP_INTERNAL_ERROR     INTERNAL错误
ERROR_NOT_ENOUGH_MEMORY       内存不够

HINTERNET WINAPI WinHttpConnect(
  _In_        HINTERNET hSession,
  _In_        LPCWSTR pswzServerName,
  _In_        INTERNET_PORT nServerPort,
  _Reserved_  DWORD dwReserved
);
作用:建立一个http的连接会话。


參数:
hSession [in]
通过调用winHttpOpen返回的session句柄。

pswzServerName [in]
主机或域名。能够有IP地址也能够是网站域名。

nServerPort [in]
主机的port;
取值:
INTERNET_DEFAULT_HTTP_PORT      默认的HTTPport80。


INTERNET_DEFAULT_HTTPS_PORT      默认的HTTPSport443。能够通过调用WinHttpOpenRequest函数中的WINHTTP_FLAG_SECURE 开启HTTPS
INTERNET_DEFAULT_PORT       默认HTTP为80,HTTPS为443

dwReserved [in]
保留參数。设置为0;

返回值:假设调用成功则返回一个HTTP连接会话的句柄,否则为NULL。为NULL时能够调用getlasterror查看。


err code:
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE    句柄的类型不对。


ERROR_WINHTTP_INTERNAL_ERROR     INTERNAL错误。


ERROR_WINHTTP_INVALID_URL      无效的URL
ERROR_WINHTTP_OPERATION_CANCELLED    操作被取消,通经常使用于操作完毕前。


ERROR_WINHTTP_UNRECOGNIZED_SCHEME    URL不能被识别或不支持。
ERROR_WINHTTP_SHUTDOWN       winhttp已关闭或卸载
ERROR_NOT_ENOUGH_MEMORY       内存不够

BOOL WINAPI WinHttpCrackUrl(
  _In_     LPCWSTR pwszUrl,
  _In_     DWORD dwUrlLength,
  _In_     DWORD dwFlags,
  _Inout_  LPURL_COMPONENTS lpUrlComponents
);
作用:分离host和路径
參数:
pwszUrl [in]
将正确规范的URL进行分离,但不正确URL做有效性验证。

dwUrlLength [in]
pwszUrl的长度。假设设为0。则默认pwszUrl字符以NULL结束来计算长度。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/70652.html