Asynchronous http request

How to make asynchronous http requests in cocos2dx. which api i need to use .

Hello,
there is more solutions (for example):
1.easy interface in own thread
2.multi interface
3.multi inteface in own thread

The simples is use multi interface from libcurl (http://curl.haxx.se/libcurl/c/multi-app.html).

Mr Milda

I am using pthread for http request.
I want to remove the current layer when the download is finished.
But i got a bad access when trying to getParent or removeFromParentAndCleanup.
How should I add the callback/delegate?

Hi, Leo, you had better not to invoke methods of classes which inherits from CCObject in other threads. Because #354 have not been implemented yet.
The recommended approach is to deal with the network in a new thread, and use flags, events, locks to sync with UI thread.

Hello and sorry to use an old post, but look like exactly the same question.

I link libcurl to my project, and success to download (synchronously) a JSON file. Not the best but small file so from now it’s ok.
But now I want to download small image, and I really need to do all of that asynchronous.

Did someone success of doing that ?

Like ASIHttpRequest on iPhone. I just have a callback when downloading is finish and during that the HUD isn’t freeze.

Thanks for reading,
Damien

Hello,
we use multi interface, as I mentioned in my post in this forum.
I only wrap example on the link.

It works as you need (async communication upload/download with callback).

I hope that helps you.

MG

Ok.

As I don’t see callback on the example, I was trying to add one but if you just wrap this sample, I will try to do the same.

No need to make the 2 while in a looping action ?
I don’t see how can continue to play if for example my download take 30 minutes.

I will continue my try with this sample.

Thanks,
Damien

Ok, I find my error.
I was adding the line :
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
But I forget to add the line :
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk);

So for sure the Write function was crash when using the chunk param as it wasn’t send to the function.

Now I have to use the char* of the chunk to make a CCTexture (or CCSprite).
Don’t success from now but I continue to try.

Thank you Milda, it’s working fine.
Damien