Proxyman
HomepageDownload
  • Overview
  • Changelog
  • License
  • License Manager
  • Raycast
  • Command-line
  • Security Compliance
  • Proxyman iOS
    • Proxyman for iOS
    • Map Local for iOS
    • Breakpoint for iOS
    • Tutorial for iOS
      • Map Local for iOS Tutorial
      • Breakpoint for iOS Tutorial
  • Debug on Devices
    • macOS
    • iOS Device
    • iOS Simulator
    • tvOS & watchOS
    • Android Device & Emulator
      • Automatic Script for Android Emulator
      • Sample Android Project
    • Firefox
    • Java VMs
    • Python
    • Ruby
    • NodeJS
    • Rust
    • Golang
    • React Native
    • Flutter
    • HTTP Clients
    • Docker
    • ElectronJS
    • NextJS (fetch)
  • Automatic Setup
    • Automatic Setup
    • Manual Setup
    • Troubleshooting
  • Atlantis
    • Atlantis for iOS
  • BASIC FEATURES
    • Proxyman Proxy Helper Tool
    • Request / Response Previewer
    • SSL Proxying
    • Bypass Proxy List
    • Import / Export
    • Content Filter
    • Multiple Tabs
    • Horizontal/Vertical/Window Layout
    • Copy as
    • Custom Previewer Tab
    • Custom Header Column
    • Regex (Regular Expression)
    • Filter JSON Response
    • Highlight by Color and Add Comment
    • Import / Export Settings
    • Multipart Form-Data Previewer
    • JSONPath
    • Customize Toolbar
    • Localization
    • Quick Preview
  • ADVANCED FEATURES
    • Repeat
    • Edit & Repeat
    • Compose new Request
    • No Caching
    • Breakpoint
    • Breakpoint Templates
    • Map Local (File)
    • Map Local (Directory)
    • Map Remote
    • External Proxy
    • Save Session
    • Protobuf
    • WebSocket
    • Clear Session
    • Block List
    • Allow List
    • Charles Proxy Converter
    • Custom Certificates
    • GraphQL
    • Network Conditions
    • Multiple Filters
    • Custom Filters
    • Publish to Gist
    • Reverse Proxy
    • Code Generator
    • Diff
    • Access Control
    • DNS Spoofing
    • SOCKS Proxy
    • Swagger OpenAPI
    • TLS Key Logging
  • Proxyman Windows
    • Install Certificate
    • WSL
  • Scripting
    • Scripting
    • async/await Request
    • Addons
    • Built-in JS Libraries
    • Write your own Addons
    • Snippet Code
    • Environment Variables
  • Troubleshooting
    • Proxyman does not work with VPN apps
    • My Remote Devices (iOS/Android) could not connect to Proxyman?
    • iOS 16 and iOS 17 issues
    • SSL Error from HTTPS Request/Response
    • I could not see any requests from my localhost server
    • I could not see any HTTP traffic from my NodeJS, Python, or Ruby scripts
    • *.local requests do not appear on Proxyman
    • I couldn't see any traffics on Proxyman
    • I couldn't see any requests from 3rd-party network libraries
    • [Breakpoint] Modify Request/Response by Raw Message
    • Could not change Proxyman App Icons
    • Lost data after updating Proxyman app?
    • Proxyman consumes too much RAM & unresponsive
Powered by GitBook
On this page
  • 1. What's it?
  • 2. Benefits
  • 3. Map Remote with GraphQL Requests
  • 4. Using Scripting as Map Remote ✅
  • 5. Matching Rule
  • Debugging
  • Preserve Host Header
  • 6. How to use
  • 7. Common Usages
  • 7.1 Map Localhost (HTTP) to Production (HTTPS)
  • 7.2 Map Production (HTTPS) to localhost (HTTP)
  • 7.3 Map certain URL to another host
  • 7.4 Map Websocket from localhost to Production
  • 7.5 Map Websocket from Production to Localhost
  1. ADVANCED FEATURES

Map Remote

PreviousMap Local (Directory)NextExternal Proxy

Last updated 2 years ago

1. What's it?

Map Remote (⌘⌥R) 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 mapping from HTTP to HTTPS and vice-versa

From Proxyman 4.3.0: Map Remote supports Websocket and Secure Websocket.

2. Benefits

  • Use Production Endpoints on your Development website on certain endpoints without changing the source code

  • Use Development Endpoints on your Production website

  • Change certain request's URLs to different destinations

  • Able to replace requests components, such as Protocol, Host, Port, Path, or Query on the fly

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 ✅

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

For matched requests, Proxyman attempts to:

  • Replace Protocol, Host, Port, Path, and 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

Debugging

To determine what Map Remote matches your URL, you can open The Request -> Summary Tab:

  1. Select your request

  2. Summary Tab -> Debugging Tools

  3. Check the Map URL

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

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

7. Common Usages

7.1 Map Localhost (HTTP) to Production (HTTPS)

Result:

Original URL
To URL

http://localhost:3000

https://proxyman.io

http://localhost:3000/pricing

https://proxyman.io/pricing

http://localhost:3000/v1/user?id=123&name=proxyman

https://proxyman.io/v1/user?id=123&name=proxyman

POST http://localhost:3000/login

POST https://proxyman.io/login

7.2 Map Production (HTTPS) to localhost (HTTP)

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

POST https://proxyman.io/login

POST http://localhost:3000/login

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

7.4 Map Websocket from localhost to Production

Original URL
To URL

ws://localhost:4000

wss://ws.postman-echo.com

ws://localhost:4000/websocket

wss://ws.postman-echo.com/websocket

7.5 Map Websocket from Production to Localhost

Original URL
to URL

wss://ws.postman-echo.com

ws://localhost:3000

wss://ws.postman-echo.com/websocket

ws://localhost:3000/websocket

Check out common when mapping from HTTP <-> HTTPS.

To boost your productivity, you can use the that allows you to achieve the same result as Map Remote by writing simple Javascript Code

For instance,

If you get difficult to set up a complicated Map Remote Rule, you might easily do it by using the .

Please check out to learn how to use Scripting to achieve the same result as Map Remote.

Proxyman supports and Wildcard from the 2.3.0 version.

We can define matching rules by using .

GraphQL
Regular Expression
Check out here
Wildcard or Regular Expression
Map Remote Config
Snippet code to change Production to Localhost server
Map Remote Snippet Code
Scripting feature
Scripting Tool
Map Remote Rules
How to debug the Map Remote
Create a Map Remote
Map Remote Config
Map Remote Config
Map Remote Config
Map Remote Config