2016-07-10 2 views
0

私の要求を確認するためにすべてのヘッダーを印刷しようとしていますが、残念ながらすべてのヘッダーが内容の長さを出力しない理由を想定して印刷していますか?何が問題なの?ここで私はのContent-Lengthが自動的にあなたの要求のサイズに基づいて設定されたヘッダ財産であると考えてい内容の長さが印刷されない

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

リクエストを送信し、応答または応答コードを受信した後に、チェックを入れてください。あまりにも早くそれをチェックしているだけです。しかし、それがあなたが提供した価値に設定されることは期待しないでください。 Javaによって自動的に設定されます。 – EJP

答えて

1

私の要求です。

+0

リクエストヘッダーについては正しいですが、返すメソッドは[* response *](https://docs.oracle.com/javase/8/docs/api/java/net/URLConnection)の長さを返します。 html#getContentLength--)。 – EJP

+0

はい、そうです。私はそれらの方法を私の答えから取り除きます。また、リクエストのコンテンツ長を自動的に取得する方法があるかどうかを確認します。 –

+0

私がすでに言ったように、あなたはすでにそれについて正しいです。もう一度チェックする必要はありません。 – EJP

関連する問題