2016-12-12 5 views
1

Ich habe mit Littleproxy gespielt und fand es einfach, Antworten zu ändern, kann aber kein gutes Beispiel für das Ändern von Anfrageparametern erhalten.LittleProxy Modify Anfrage Parameterbeispiel

Im Netz habe ich nur ein Beispiel gefunden, Postdaten zu ändern. Aber kann es nicht funktionieren lassen.

Möchten Sie ein Beispiel erläutern, wie wir die Anforderungsparameter erhalten und ändern können.

Ich habe dies:

public HttpResponse proxyToServerRequest(HttpObject httpObject) { 

    if(httpObject instanceof FullHttpRequest){ 
     FullHttpRequest request = (FullHttpRequest) httpObject; 

     if(request.getMethod() == HttpMethod.POST 
       && request.getUri().contains("/post")){ 

      CompositeByteBuf contentBuf = (CompositeByteBuf) request.content();   

      String contentStr = contentBuf.toString(CharsetUtil.UTF_8); 

      System.out.println("Post content for " + request.getUri() + " : " + contentStr); 

      String newBody = contentStr.replace("e", "ei"); 

      ByteBuf bodyContent = Unpooled.copiedBuffer(newBody, CharsetUtil.UTF_8); 

      contentBuf.clear().writeBytes(bodyContent); 
      HttpHeaders.setContentLength(request, newBody.length()); 
     } 
    } 

    return null; 
} 

Kennen Sie ein anderes gutes Beispiel?

Antwort

0

Sie können zum Beispiel das Entfernen spezifischer Header wie folgt aus:

@Override 
public HttpResponse proxyToServerRequest(HttpObject httpObject) 
{ 
    if (httpObject instanceof HttpMessage) 
    { 
     HttpHeaders headers = ((HttpMessage)httpObject).headers(); 
     headers.names().forEach(h -> headers.remove(headerName)); 
    } 

    return super.proxyToServerRequest(httpObject); 
}