Par exemple, lors de l'écriture d'un programme qui télécharge et récupère des fichiers à partir d'un site externe, selon le site, il peut être téléchargé avec un navigateur, mais si vous connectez l'URL à partir du code, une erreur peut se produire. En fait, lorsque je vérifie comment il peut être téléchargé avec un navigateur avec DevTools de Chrome, etc., le code d'état HTTP 302 est renvoyé à l'URL à laquelle je suis allé. Cette fois, j'écrirai une note sur la correspondance concernant ce code d'état HTTP 302.
Comme indiqué dans l'article Qu'est-ce que le code d'état HTTP "302 redirect", 302 aurait une "redirection temporaire". Dans le cas de 302, l'URL affichée dans le navigateur ne change pas, donc à moins que vous n'utilisiez DevTools etc., l'utilisateur ne remarquera pas que vous êtes redirigé.
Lorsque la réponse 302 est renvoyée, l'URL de la destination de redirection est stockée dans le "Location" de l'en-tête. Par conséquent, vous pouvez vous reconnecter à l'URL stockée dans cet emplacement. L'article StackOverflow à ici présente l'implémentation Java.
Presque une copie de l'article Stack Overflow ci-dessus, mais un exemple d'implémentation.
Sample.java
public class Sample {
//Obtenez des informations CSV de PhishTank
public void urlSample() {
try {
//Connectez-vous à l'URL avant la redirection
URL url = new URL("https://xxxx/xxxxxx");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setInstanceFollowRedirects(false);
String redirectLocation = conn.getHeaderField("Location");
conn.disconnect();
//Reconnectez-vous avec l'URL redirigée
URL afterRedirectUrl = new URL(redirectLocation);
InputStreamReader in = new InputStreamReader(afterRedirectUrl.openStream());
//Après cela, le traitement des données reçues
} catch (Exception e) {
//La gestion des erreurs
}
}
}
Recommended Posts