Question

I use ASIHTTPRequest framework in my iPhone application to manage the HTTP communication. I followed their examples given in the project home page to send asynchronous requests. There we have to implement two callbacks, one for requestFinish and other for requestFailed.

However, 60% of the time requests sent by the iPhone ends up in the "requestFinish" callback method and gives a valid HTTP status code. But sometimes it goes to "requestFailed" callback and the status code become '0' which is confusing. My investigations revealed that the internet connection is ok, and I am sending the request to the correct URL, however no log messages found in server log. So why does the request gets dropped in the middle so randomly? Has anyone came across with this type of issue. Will be very helpful.

Thanks

Was it helpful?

Solution

As well as what phooze suggested, there is logging in ASIHTTPRequestConfig.h that you can enable, that may provide a clue as to what is happening.

OTHER TIPS

Are you looking at the status code of the ASIHTTPRequest object? That code is simply an HTTP response code - if you didn't get a response, then that should be zero.

Instead, you want to look at the NSError object that the delegate failure callback gives you.

I would use something like:

NSLog(@"%@",[error localizedErrorDescription]);

To print out to the log what the error is. Of course, "error" is the name of the variable in the method signature - you should double-check that, I think that's what the default is.

In [ASHTTPRequest initialize], I changed

[sharedQueue setMaxConcurrentOperationCount:4]

to

[sharedQueue setMaxConcurrentOperationCount:10]

This work for me, but I don't know why.

MORE:

I found this.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top