Map Remote

1. What's it?

Map Remote would help the developer to change the HTTP Request's location to a new destination server, per the configured rules, so the HTTP Response is transparently served from your client.
Map Remote also supports map from HTTP to HTTPS and vice-versa
⌘⌥R: Map Remote Shortcut
For common user-cases, please check out this tiny tutorial

2. Benefits

    Use Production Endpoints on your Development website on certain endpoints without changing in the source code
    Use Development Endpoints on your Production website
    Change certain request's URL to different destinations
    Able to replace requests components, such as Protocol, Host, Port, Path or Query on the fly
To boost your productivity, you can use the Scripting feature that allows you to achieve the same result of Map Remote by writing simple Javascript Code

3. Map Remote with GraphQL Requests

From Proxyman 2.27.0+, Map Remote can work with GraphQL Request by a specific QueryName. Please check out the following GraphQL Document.

4. Using Scripting as Map Remote ✅

If you get difficult to set up a complicated Map Remote Rule, you might easily do it by using the Scripting Tool.
Please check out Map Remote Snippet Code to learn how to use Scripting to achieve the same result as Map Remote.
For instance, it's straightforward to do the following by Scripting:
    Map v1 to v2 endpoints
    Map Production to Localhost
    Map Localhost to Production
    ...

5. Matching Rule

Proxyman supports Regular Expression and Wildcard from the 2.3.0 version. Check out here
We can define matching rules by using Wildcard or Regular Expression.
For matched requests, Proxyman attempts to:
    Replace Protocol, Host, Port, Path, Query if it available
    If the component is empty, it won't change the matched request's component
    Leave the Text Field blank to keep it unchanged from the matched request
    The wildcard is not allow

Additional Headers

If the request is matched, the Response would contain:
    X-Proxyman-Map-Remote: https://<your_map_remote_url>
Therefore, it's easier to know what is the server that the response serves

Preserve Host Header

By default, Proxyman attempts to override the Host Header to match with the new Host in Remote Map. It's crucial to successfully make a request.
If you would like to preserve the original Host Header, please check ON in the "Preserve Host Header" checkbox when creating a new entry. Proxyman will preserve the Host value.

6. How to use

    Tools Menu -> Map Remote
    Right Click on selected Request -> Tools -> Map Remote: Proxyman will fill in necessary data from the selected request

7. Common Usages

7.1 Map all localhost traffic to HTTPS

    Rule: http://localhost:3000
    Select Any and Wildcard
    Check Include all subpaths of this URL
Map To:
    Protocol: https
    Host: your production host (e.g proxyman.io)
    Port 443
    Leave Path and Query Empty
Result:
Original URL
To URL
http://localhost:3000
https://proxyman.io
http://localhost:3000/v1/user?id=123&name=proxyman
https://proxyman.io/v1/user?id=123&name=proxyman

7.2 Map HTTPS Production URL to localhost

    Rule: https://proxyman.io
    Select Any and Wildcard
    Check Include all subpaths of this URL
Map To:
    Protocol: http
    Host: your local server (e.g localhost:3000, or proxyman.dev (alias domain from /etc/hosts))
    Port: 3000 (your local port)
    Leave Path and Query Empty
Result:
Original URL
To URL
https://proxyman.io
http://localhost:3000
https://proxyman.io/v1/user?id=123&name=proxyman
http://localhost:3000/v1/user?id=123&name=proxyman

7.3 Map certain URL to another host

    Rule: https://proxyman.io/v1/user (for instance)
    Select Any and Wildcard
    Un-Check Include all subpaths of this URL: Un-check means it doesn't map other subpaths
Map To:
    Protocol: https
    Host: New Host (e.g staging.proxyman.io)
    Port: 443 (your local port)
    Leave Path and Query Empty
Result:
Original URL
To URL
https://proxyman.io
https://proxyman.io (does not map the rule)
https://proxyman.io/v2/setting
https://proxyman.io/v2/setting (does not map the rule)
https://proxyman.io/v1/user?id=123&name=proxyman
https://staging.proxyman.io/v1/user?id=123&name=proxyman
Last modified 1mo ago