On Mon, 31 Jul 2017, Werner Pamler wrote:

Here is a little demo program which uses fphttpclient to download some file from some server.

If the URL exists everything is fine (note on Windows, that the OpenSSL dlls must be copied to the exe directory for the demo to work). If the URL does not exist, but the server responds, the program returns the well-known error 404 (if the 404 has been added to the response codes in HTTPMethod) - also fine. But if a connection to the server cannot be established -- maybe because the server URL is wrong -- then the program creates an exception. Synapse, on the other hand, does not crash on this occasion, it just returns an error 500. This behavior appears to be much more consistent than fpc's.

Is this intentional? Or should I report a bug?

This is very intentional.

Returning a 500 on connection error is plain wrong. Status 500 indicates an internal error on the server. This is an 'agreement' governed by a RFC.

But if the connection cannot be made, there was no server, and there cannot be a server status either.

Michael.
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to