2017-02-12 13 views
-1

У меня возникли проблемы с успешной отправкой запроса HTTPS POST. Запрос проходит отлично, но я получаю другой ответ, чем тот, который я получаю в своем браузере. Я использую перехватчик прокси в моем браузере для просмотра запросов/ответов, и я считаю, что я делаю тот же запрос в коде ниже. Проблема в том, что код ответа 200 (OK), а не код ответа 301 (перенаправление). Переадресация - на страницу, которую я хочу, но я не могу найти там код ниже. Я пробовал использовать «HttpsURLConnection», но это не изменило ситуацию.Запрос на отправку Java HTTPS POST возвращает код ответа 200, когда я знаю, что он должен вернуть код ответа 302

Я уверен, что запрос тот же, но с ним нельзя обращаться одинаково. Может быть, в моем браузере SSL-сертификат используется в сочетании с моим файлом cookie, что делает запрос другим?

Как я могу добраться до нужной страницы переадресации?

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

Я узнал, что это было. URL-адрес перенаправления из запроса POST в моей программе был не таким же, как URL-адрес переадресации в моем браузере, хотя запрос был точно таким же.

Мне удалось заставить его работать, выполнив запрос POST, проигнорировав ответ, а затем выполнив запрос GET на ожидаемый URL. Это дало мне ответ, который я ожидал.

Не знаете, почему в моей программе отличается перенаправление от запроса POST.