2016-07-10 10 views
0

Ich versuche, alle Header zu drucken, um meine Anfrage zu überprüfen, aber leider druckt es alle Header erwarten Content-Länge, warum es Inhalt Länge nicht gedruckt wird? Was das Problem ist ? hier ist meine AnfrageInhalt Länge wird nicht gedruckt

public static String performPostCall(String requestURL, 
     String postDataParams, int length, PrintWriter pw) throws Exception { 
    URL url; 
    String response = ""; 
    try { 
     url = new URL(requestURL); 

     HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
     conn.setReadTimeout(10000); 
     conn.setConnectTimeout(10000); 
     conn.setRequestMethod("POST"); 

     conn.setRequestProperty("SOAPAction", 
       "http://tempuri.org/SendRequest"); 
     conn.setRequestProperty(HTTP.CONTENT_TYPE, 
       "text/xml; charset=utf-8"); 
     conn.setRequestProperty("Content-Length", String.valueOf(length)); 

     conn.setDoInput(true); 
     conn.setDoOutput(true); 
     pw.println("Post request: " + url); 
     for (String header : conn.getRequestProperties().keySet()) { 
      if (header != null) { 
       for (String value : conn.getRequestProperties().get(header)) { 
        System.out.println(header + ":" + value); 
       } 
      } 
     } 
     pw.println(postDataParams); 
    //code.. 

    return response; 
} 
+0

Versuchen Sie es zu überprüfen, nachdem Sie die Anfrage gesendet und die Antwort oder den Antwortcode erhalten haben. Sie überprüfen es nur zu früh. Aber erwarte nicht, dass es auf den von dir angegebenen Wert gesetzt wird. Es wird automatisch von Java gesetzt. – EJP

Antwort

1

I Content-Length ist eine Header-Eigenschaft glaube, die basierend auf der Größe Ihrer Anfrage wird automatisch eingestellt.

+0

Sie haben den Anforderungsheader korrekt, aber die von Ihnen angegebenen Methoden geben die Länge der [* response *] (https://docs.oracle.com/javase/8/docs/api/java/net/URLConnection) zurück. html # getContentLength--). – EJP

+0

Ja, du hast Recht. Ich werde diese Methoden aus meiner Antwort entfernen. Ich überprüfe auch, ob es eine Möglichkeit gibt, die Inhaltslänge der Anfrage automatisch festzulegen. –

+0

Wie ich bereits sagte, hast du das schon richtig. Keine Notwendigkeit, noch einmal zu überprüfen. – EJP