The issue is the following. When making http requests using WinInet everything goes smooth, as soon as we switch to CURL the requests take ages to complete or time-out. Manual calls to our client via any other way result in fast queries (even using the curl command line on linux is fast)
What could be the issue here?
The following makes my http requests very fast, opposed to the default, which is curl.
[Networking]
UseLibCurl=False
This solution is not good enough for us, since we also want to release on linux and there Curl is the only option at the moment, so we really have to fix it. Any ideas what the cause could be? Serverside, UE4 side?
In addition to this i figured out something interesting. It seems you are still using version 7.41.0 of CURL, while the installation scripts in Engine\Source\ThirdParty\libcurl\BUILD.EPIC.sh seems to indicate it should be 7.48.0. I tried running the script myself, but it seems not to work properly anymore failing at includes etc.
I AM able to build for Linux, but i am required to turn of cURL. If cURL is turned of it does not work on Linux. (yes i am able to start the game, but connection is very slow.) So yes it is the same issue and it is not about packaging.
I looked around and there is no current internal work around for this issue. Keep an eye on the issue report and feel free to upvote it, which will let the developers know that this issue is important to the community.
We identified the problem with the Curl implementation in Unreal Engine source.
Whenever performing a GET request, the message payload will not get uploaded. The timeout happens after the server waits for the data to be received (since the Content-Length header is getting sent), and never sends back a response.
The problem is resolved by
using POST or PUT to upload data and not a GET verb.
In particular, the VARest plugin can be patched to never sent the default JSON object when performing non-POST and non-PUT requests. I.e. conditionally executing HttpRequest->SetContentAsString(OutputString); only for the working verbs.
We have confirmed that this solution works on Windows.
I encountered a similar issue where http requests were really slow. The problem was that the thread tick rate was way too slow, limiting my download speed to ~1MB/s.