আমি বুঝতে পারি না যে জাভা কেন HttpURLConnection
কোনও HTTP থেকে কোনও HTTP থেকে কোনও HTTPS ইউআরএলকে পুনর্নির্দেশ করে না? Https://httpstat.us/ এ পৃষ্ঠা পেতে আমি নিম্নলিখিত কোডটি ব্যবহার করি :
import java.net.URL;
import java.net.HttpURLConnection;
import java.io.InputStream;
public class Tester {
public static void main(String argv[]) throws Exception{
InputStream is = null;
try {
String httpUrl = "http://httpstat.us/301";
URL resourceUrl = new URL(httpUrl);
HttpURLConnection conn = (HttpURLConnection)resourceUrl.openConnection();
conn.setConnectTimeout(15000);
conn.setReadTimeout(15000);
conn.connect();
is = conn.getInputStream();
System.out.println("Original URL: "+httpUrl);
System.out.println("Connected to: "+conn.getURL());
System.out.println("HTTP response code received: "+conn.getResponseCode());
System.out.println("HTTP response message received: "+conn.getResponseMessage());
} finally {
if (is != null) is.close();
}
}
}
এই প্রোগ্রামটির ফলাফল:
আসল ইউআরএল: http://httpstat.us/301 এর সাথে সংযুক্ত: http://httpstat.us/301 এইচটিটিপি প্রতিক্রিয়া কোড পেয়েছে: 301 এইচটিটিপি প্রতিক্রিয়া বার্তা পেয়েছে: স্থায়ীভাবে সরানো হয়েছে
Http://httpstat.us/301 এর কাছে একটি অনুরোধ নিম্নলিখিত (সংক্ষিপ্ত) প্রতিক্রিয়া (যা একেবারে ঠিক বলে মনে হচ্ছে!) প্রদান করে:
HTTP/1.1 301 Moved Permanently
Cache-Control: private
Content-Length: 21
Content-Type: text/plain; charset=utf-8
Location: https://httpstat.us
দুর্ভাগ্যক্রমে, জাভা এর HttpURLConnection
পুনর্নির্দেশ অনুসরণ করে না!
মনে রাখবেন যদি আপনি আসল করে (HTTPS থেকে URL পরিবর্তন https://httpstat.us/301 ), জাভা হবে পুনর্নির্দেশ আশানুরূপ অনুসরণ !?