2016-07-26 36 views
1

Ich führe einen http-Server lokal auf Port 8181. Ich habe meine mitmproxy auf meinen Geräten konfiguriert und jetzt muss ich Anfragen von einer bestimmten Domäne an meine lokale Serverinstanz weiterleiten. So verwende ich die Anfrage Beispielskript here beschrieben umleiten:mitmproxy Redirect Anfrage an localhost und setzen Host-Header

def request(flow): 
    # pretty_host takes the "Host" header of the request into account, 
    # which is useful in transparent mode where we usually only have the IP 
    # otherwise. 

    # Method 2: Redirect the request to a different server 
    if flow.request.pretty_host.endswith("mydomain.com"): 
     flow.request.headers["Host"] = flow.request.headers 
     flow.request.host = "localhost" 
     flow.request.port = 8181 
     flow.request.scheme = 'http' 

Dies funktioniert, aber ich brauche die Host Header auf die ursprüngliche Anforderung Host zu setzen, so folgte ich das Add-Header Beispiel here wie

tun beschrieben

aber wenn in mitmproxy kann ich nicht sehen, dass diese Header in der Anfrage festgelegt, und ich bekomme es nicht auf localhost Serverprotokolle.

Also, was ich es das gleiche wie cURL

curl -b c -c c "http://localhost:8181/something" -H "Host: mydomain.com" 

zu haben, um zumindest die benötigten Anforderungsheader wie

* Trying ::1... 
* Connected to localhost (::1) port 8181 (#0) 
> GET /something HTTP/1.1 
> Host:mydomain.com 
> User-Agent: curl/7.43.0 
> Accept: */* 

Antwort