2017-02-12 16 views
-1

HTTPS POST要求が正常に処理できません。要求はうまくいっていますが、私はブラウザで受け取ったものとは異なる応答を得ています。ブラウザでリクエスト/レスポンスを表示するために傍受プロキシを使用しています。私は以下のコードで全く同じリクエストを行っていると思います。問題は、レスポンスコードが301(リダイレクト)ではなく、200(OK)であることです。リダイレクトは私が欲しいページですが、私は下のコードでそこに着くことはできません。私は 'HttpsURLConnection'を使用してみましたが、違いはありませんでした。Java HTTPS POST要求が200の応答コードを返しています。応答コードが302であることがわかっています。

リクエストは同じですが、同じ扱いを受けていないことは確かです。私のブラウザでは、SSL証明書が私のクッキーと組み合わせて使用​​されているので、リクエストが違うのでしょうか?

希望するリダイレクトページに移動するにはどうすればよいですか?

private static void post(){ 
    try { 
     URL obj = new URL("https://www.mywebsiteoffun4321.com/add"); 
     HttpURLConnection con = (HttpURLConnection) obj.openConnection(); 
     con.setRequestMethod("POST"); 
     con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); 
     con.setRequestProperty("Host", "www.mywebsiteoffun4321.com"); 
     con.setRequestProperty("Cookie", cookie); 
     con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
     String urlParameters = "var=true"; 
     con.setDoOutput(true); 
     DataOutputStream wr = new DataOutputStream(con.getOutputStream()); 
     wr.writeBytes(urlParameters); 
     wr.flush(); 
     wr.close(); 
     BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); 
     String inputLine; 
     System.out.println(con.getResponseCode()); 
     while ((inputLine = in.readLine()) != null) { 
      System.out.println(inputLine); 
     } 
     in.close(); 
    } catch (Exception e) {System.out.println(e);} 
} 
+0

デフォルトでは、 'HttpURLConnection'はリダイレクトの後に続きます。 – EJP

答えて

0

私はそれが何かを発見しました。私のプログラムのPOSTリクエストからのリダイレクトURLは、要求がまったく同じであってもブラウザのリダイレクトURLと同じではありませんでした。

POSTリクエストを完了し、応答を無視して、期待されるURLに対してGETリクエストを実行することで、動作させることができました。これは、私が期待した反応を私に与えました。

なぜ私のプログラムでPOST要求からのリダイレクトが異なるのか分かりません。

関連する問題