• 网络访问
    • 使用 HTTP 进行网络访问

    网络访问

    使用 HTTP 进行网络访问

    有时候我们需要从网络上获取资源数据,一种常见的解决方法就是使用 HTTP 进行网络访问。

    使用 HTTP 进行网络访问有三个步骤:

    • 创建一个 HTTP 请求 HttpRequest
    • 通过 setResponseCallback() 设置一个请求完成时的回调函数
    • 使用 HttpClient 发送 HttpRequest
      HttpRequest 有四种类型:POSTPUTDELETE__UNKNOWN。除非指定请求的类型,否则就默认 UNKNOWN。HttpClient 对象负责请求的发送,也负责数据的接收。

    示例:

    C++

    1. HttpRequest* request = new (std :: nothrow) HttpRequest();
    2. request->setUrl("http://just-make-this-request-failed.com");
    3. request->setRequestType(HttpRequest::Type::GET);
    4. request->setResponseCallback(CC_CALLBACK_2 (HttpClientTest::onHttpRequestCompleted, this));
    5. HttpClient::getInstance()->sendImmediate(request);
    6. request->release();

    注意,我们通过 setResponseCallback() 设置请求完成时的回调函数了。这样做,在请求完成时,我们就能查看返回的数据,并提取出我们需要的。

    回调函数的写法很简单,可以像这样做:

    C++

    1. void HttpClientTest::onHttpRequestCompleted(HttpClient* sender, HttpResponse* response)
    2. {
    3. if (!response)
    4. {
    5. return;
    6. }
    7. // Dump the data
    8. std::vector<char>* buffer = response->getResponseData();
    9. for (unsigned int i = 0; i <buffer-> size (); i ++)
    10. {
    11. log ("% c", (* buffer) [i]);
    12. }
    13. }

    原文: http://docs.cocos.com/cocos2d-x/manual/zh/advanced_topics/networking.html