본문 바로가기

Cocos2d-x v3.17/고급 기능

[Cocos2d-x 고급기능]네트워크 액세스

반응형

    네트워크 액세스

    HTTP 사용한 네트워크 액세스

    네트워크상에서 어떤 리소스데이터를 얻어와야 할때가 있습니다.

    자주 사용되는 해결방법은 HTTP 사용하여 네트워크 액세스를 하는것입니다.

    HTTP  사용하여 네트워크 액세스를 하려면 아래의 3단계를 따라가세요.


    1. HTTP 요청을 하기위해서 HttpRequest 생성합니다.
    1. setResponseCallback()  통해서 Request완료됬을때의 콜백함수를 설정합니다.
    1. HttpClient 사용하여 HttpRequest 발송합니다.


    HttpRequest  4종류의 타입이 있습니다POST PUT DELETE UNKNOWN

    타입을 지정해주지 않으면 디폴트로 UNKNOWN으로 사용됩니다.


    HttpClient 객체가 Request 발송  데이터의 수신을 책임집니다.


    예시

    C++

    HttpRequest* request = new (std :: nothrow) HttpRequest();

    request->setUrl("http://just-make-this-request-failed.com");

    request->setRequestType(HttpRequest::Type::GET);

    request->setResponseCallback(CC_CALLBACK_2 (HttpClientTest::onHttpRequestCompleted, this));

    HttpClient::getInstance()->sendImmediate(request);

    request->release();


    setResponseCallback()  통해서 Request완료시 콜백함수를 설정하였습니다.

    이렇게 하면 Request 완성됬을때 우린 리턴된 데이터를 볼수있고 우리가 필요한 데이터를 추출할수 있습니다.

     

    콜백함수를 작성하는방법은 간단합니다.아래를 보시죠.

    C++

    void HttpClientTest::onHttpRequestCompleted(HttpClient* sender, HttpResponse* response)

    {

      if (!response)

      {

        return;

      }

    // Dump the data

      std::vector<char>* buffer = response->getResponseData();

    for (unsigned int i = 0; i <buffer-> size (); i ++)

      {

        log ("% c", (* buffer) [i]);

      }

    }

     

    출처: <http://cocos2d-x.org/docs/cocos2d-x/zh/advanced_topics/networking.html>

     




반응형