更新时间:2024-09-13 GMT+08:00

设置代理信息

SetProxyInfo

接口描述

该接口用于设置代理信息。

注意事项

  1. 该接口非必需调用,若不设置,则默认不使用代理。
  2. 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。

方法定义

HWM_SDK_AGENT_API hwmsdk::HwmErrCode SetProxyInfo(const HwmProxyInfo* proxyInfo);

回调函数

virtual void OnSetProxyInfoResult(hwmsdk::HwmErrCode ret, const char* reason) {};

参数描述

表1 HwmProxyInfo参数说明

参数

是否必须

类型

描述

proxyConfigPolicy

HwmProxyConfigPolicy

代理配置策略。

server

char[]

代理地址。

serverPort

unsigned short

代理端口。

account

char[]

代理账号。

password

char[]

代理密码。

表2 枚举HwmProxyConfigPolicy参数说明

枚举值

描述

HWM_PROXY_CONFIG_POLICY_CUSTOM

使用具有自定义配置的代理。

HWM_PROXY_CONFIG_POLICY_OFF

不使用代理。

HWM_PROXY_CONFIG_POLICY_AUTO

使用系统代理。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/**
*  设置代理信息
*/
void demoSetProxyInfoDlg::SetProxyInfo()
{
    CString serverCString;
    CString portCString;
    CString accountCString;
    CString pwdCString;
    m_proxyServerEdit.GetWindowText(serverCString);
    m_proxyPortEdit.GetWindowText(portCString);
    m_proxyUserNameEdit.GetWindowText(accountCString);
    m_proxyPswEdit.GetWindowText(pwdCString);

    hwmsdkagent::HwmProxyInfo proxyInfo{};
    proxyInfo.proxyConfigPolicy = hwmsdkagent::HWM_PROXY_CONFIG_POLICY_CUSTOM;
    string server = CTools::UNICODE2UTF(serverCString.GetString());
    strncpy_s(proxyInfo.server, server.c_str(), HWM_MAX_URL_LEN);
    // 非自动设置时才设置用户名和密码
    int port = _ttoi(portCString);
    if (port > 65535 || port < 0)
    {
        MessageBox(L"端口合法范围为 0 ~ 65535");
        return;
    }
    proxyInfo.port = port;
    string account = CTools::UNICODE2UTF(accountCString.GetString());
    strncpy_s(proxyInfo.account, account.c_str(), HWM_MAX_ACCOUNT_LEN);

    string pwd = CTools::UNICODE2UTF(pwdCString.GetString());
    strncpy_s(proxyInfo.password, pwd.c_str(), HWM_MAX_PASSWORD_LEN);
    pwd.assign(pwd.length(), '\0');
    int ret = hwmsdkagent::SetProxyInfo(&proxyInfo);
    memset(&proxyInfo, 0, sizeof(proxyInfo));
    if (hwmsdk::HWM_COMMON_SUCCESS != ret)
    {
        AfxMessageBox(_T("set proxy info error"));
        return;
    }
    CDialogEx::OnOK();
}