HttpRequestライブラリの使用手順は次のとおりです。
  1. SysSetWLANPower関数で無線LANを有効にし、SysWLANInit関数で無線LANを初期化します。
    サンプル
        SysSetWLANPower(SYS_WLAN_POWER_AUTO);
        SysWLANInit(NULL);
    

  2. HTTP_InitHttpRequest関数を呼び出してHttpRequestライブラリを初期化します。
    サンプル
        HTTP_InitHttpRequest();
    

  3. SysGetWLANConnectStatus関数を呼び出して無線LANが接続されるまで待機します。その間Idle関数を呼び続ける必要があります。
    サンプル
        unsigned int waitStartTick;
    
        ...
    
        waitStartTick = GetTickCount();
        do{
            SysGetWLANConnectStatus(&status);
            if (status == SYS_WLAN_STATUS_CONNECTED)
                break;
            Idle();
        }while (GetTickCount() - waitStartTick < WLAN_CONNECTION_TIMEOUT);
        if (status != SYS_WLAN_STATUS_CONNECTED){
            // WLAN timeout error
            ...
    
        }
    

  4. HTTP_CreateRequest関数でHTTPリクエストの内容を定義し、HTTPリクエストハンドルを取得します。
    サンプル
        HTTP_REQUEST_HANDLE hRequest;
    
        ...
    
        hRequest = HTTP_CreateRequest(SERVER_URL, HTTP_REQ_GET, NULL,0,NULL,15000/20,0);
        if (!hRequest)
        {
            return xxxx_SERVER_CONNECTION_ERROR;
        }
    

  5. HTTP_GetResponse関数を呼び出して、HTTPリクエストを送信し、HTTPレスポンスが受信されるのを待ちます。
    サンプル
        int  result_code;
        char responsePhase;
        unsigned int responseStatus;
        char *content;
        unsigned int content_length;
        char *header;
        unsigned int headerLength;
        bool bExit = false;
    
        ...
    
        while (1)
        {
            //Wait for HTTP response
            if (!HTTP_GetResponse(
                    hRequest, 
                    &responsePhase, 
                    &responseStatus, 
                    &content, 
                    &content_length, 
                    &header,
                    &headerLength))
            {
                result_code = xxxx_SYSTEM_ERROR;
                break;
            }
            switch(responsePhase)
            {
                case HTTP_REQUEST_CONNECTION_ERROR:
                case HTTP_REQUEST_SYSTEM_ERROR:
                case HTTP_REQUEST_TIMEOUT:
                    result_code = xxxx_SERVER_CONNECTION_ERROR;
                    bExit = true;
                    break;
    
                case HTTP_REQUEST_FINISHED:
                    if (responseStatus != 200)
                    {
                        bExit = true;
                        result_code = xxxx_SERVER_RESPONSE_ERROR;
                        break;
    
                    }
                    // Got response....
    
                    ....
    
                    result_code = xxxx_SUCCESS;
                    bExit = true;
                    break;
            }
            if (bExit)
                break;
              
            Idle();
        }
    

  6. HTTP_CloseRequest関数でHTTPリクエストのリソースを解放します。
    サンプル
        HTTP_CloseRequest(hRequest);
    

  7. HTTP_DeinitHttpRequest関数でHttpRequestライブラリのリソースを解放します。
    サンプル
        HTTP_DeinitHttpRequest();
    

  8. SysSetWLANPower関数で無線LANを無効にします。
    サンプル
        SysSetWLANPower(SYS_WLAN_POWER_OFF);
    

関連事項

最終更新日:2022/04/08