Einstellung der Länge des Inhalts von HTTP-POST-Anforderung

Ich versuche einen Http-POST-request, apache-HTTP-client. Ich bin versucht zu kopieren der Inhalt einer HTTP-POST-Anforderung (erhalten auf meine Anwendung) zu einem anderen HTTP-POST-Anforderung (initiiert von meiner Anwendung auf eine andere URL). Code ist unten dargestellt:

httpPost = new HttpPost(inputURL);
//copy headers
for (Enumeration<String> e = request.getHeaderNames(); e.hasMoreElements();) {
      String headerName = e.nextElement().toString(); 
      httpPost.setHeader(headerName, request.getHeader(headerName));
}

BufferedInputStream clientToProxyBuf = new BufferedInputStream(request.getInputStream());
BasicHttpEntity basicHttpEntity = new BasicHttpEntity();
basicHttpEntity.setContent(clientToProxyBuf);
basicHttpEntity.setContentLength(clientToProxyBuf.available());

httpPost.setEntity(basicHttpEntity);

HttpResponse responseFromWeb = httpclient.execute(httpPost);

Grundsätzlich bin ich versucht zu implementieren eines proxy-Anwendung, die eine url als parameter, verkehrten die Anfrage an die URL an und dann dazu dienen, Seiten usw. im custom-look-and-feel.

Hier request ist HttpServletRequest. Ich bin vor problem in der Einstellung der Länge des Inhalts. Durch Debuggen habe ich herausgefunden, dass clientToProxyBuf.available() ist nicht, mir korrekte Länge der input-stream, und ich bin immer Http Fehler 400 IE und Error 354 (net::ERR_CONTENT_LENGTH_MISMATCH): The server unexpectedly closed the connection in Chrom.

Mache ich es falsch? Gibt es eine andere Möglichkeit es zu erreichen?

InformationsquelleAutor Umer Hayat | 2012-07-26

Schreibe einen Kommentar