| Line 7: |
Line 7: |
| | TrackMania uses a XML-RPC-like API to authenticate players, load server lists, load rankings, etc... Here is some documentation about what has been reversed engineered. A lot is still left to be documented. | | TrackMania uses a XML-RPC-like API to authenticate players, load server lists, load rankings, etc... Here is some documentation about what has been reversed engineered. A lot is still left to be documented. |
| | | | |
| − | The game sends unencrypted POST requests to | + | The game sends HTTP(s) POST requests to |
| | * [http://game.trackmaniaforever.com/online_game/request.php http://game.trackmaniaforever.com/online_game/request.php] | | * [http://game.trackmaniaforever.com/online_game/request.php http://game.trackmaniaforever.com/online_game/request.php] |
| | * [http://game2.trackmaniaforever.com/online_game/request.php http://game2.trackmaniaforever.com/online_game/request.php] | | * [http://game2.trackmaniaforever.com/online_game/request.php http://game2.trackmaniaforever.com/online_game/request.php] |
| | * [http://nations.trackmaniaforever.com/online_game/request.php http://nations.trackmaniaforever.com/online_game/request.php] | | * [http://nations.trackmaniaforever.com/online_game/request.php http://nations.trackmaniaforever.com/online_game/request.php] |
| − | to communicate with the API. | + | to communicate with the API, using the headers: <code>User-Agent: GameBox</code> and <code>Accept: */*</code> |
| − | | |
| − | It sets two headers: <code>User-Agent: GameBox</code> and <code>Accept: */*</code>, and uses the following format as request body :
| |
| | | | |
| | + | === Request === |
| | <pre> | | <pre> |
| | <?xml version="1.0" encoding="UTF-8"?> | | <?xml version="1.0" encoding="UTF-8"?> |
| Line 40: |
Line 39: |
| | </pre> | | </pre> |
| | | | |
| − | Here is a description of the parameters : | + | Here is a description of the xml: |
| | | | |
| | * '''root''' | | * '''root''' |
| Line 57: |
Line 56: |
| | *** '''value''' Looks like an auth ticket. | | *** '''value''' Looks like an auth ticket. |
| | | | |
| − | The server responds with XML, which has obfurscated names:
| + | === Response === |
| − | | |
| | <pre> | | <pre> |
| | <?xml version="1.0" encoding="UTF-8"?> | | <?xml version="1.0" encoding="UTF-8"?> |
| Line 72: |
Line 70: |
| | </pre> | | </pre> |
| | | | |
| − | Here is a description of the return: | + | Here is a description of the returned xml: |
| | | | |
| | * '''r''' | | * '''r''' |
| | ** '''r''' | | ** '''r''' |
| | *** '''n''' The name of the called function | | *** '''n''' The name of the called function |
| − | *** '''c''' The return data | + | *** '''c''' The returned data |
| | ** '''e''' A string giving the execution time. | | ** '''e''' A string giving the execution time. |
| | | | |