I think your main problem (amongst others) is the fact that you don't understand how the data is being provided to you.
You are getting data sent as text, yet you are trying to display it as a number.
When sent the value "75" you are being sent the character "7" followed by the character "5", NOT the number 75.
"7" has the decimal value 55, and surprise surprise, "5" has the decimal value 53.
So your "number" 75 is in fact made up of two bytes, 55 and 53, which are being processed by your code completely separately, so it first displays "The number called 7 is 7" which is immediately being replaced by "The number called 5 is 5".
The reason it looks OK on the serial console is because you are just printing the two characters side by side, not as one number. Add some extra character delimiting prints in there and you'll see what I mean:
// -> 7,5,
You need to convert the incoming stream of data into a number, and to do that the Arduino thoughtfully provides a handy little function called "parseInt()", which is part of the Stream class, so all sorts of things have access to it.
int c = http.parseInt();
// c == 75