Erreur 510 lors d'une requête avec Java

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,

j'ai un soucis au niveau de ma requête Java. Ou plutôt, mon hébergeur à un problème avec java.

Si je fais ma requête sur d'autre nom de domaine, ça fonctionne.

Domaine qui fonctionne:

  • http://winxaito.com
  • http://zestedesavoir.com

Domaine posant problème: (Si certain veulent essayer)

  • http://api.winlap.ch

Si je fais ma requête avec python en revanche ça fonctionne. Je ne sais pas si c'est quelque chose qu'il faudrait ajouter dans le header ou quoi… (Car ça m’embêterais un peu de devoir coder python et java juste pour une requête)

En vous remerciant.
WinXaito

Le code de ma requête

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
StringBuilder result = new StringBuilder();
URL url;
try {
    String urlParameters = "";
    url = new URL("http://api.winlap.ch");

    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Type", 
        "application/x-www-form-urlencoded");
    conn.setRequestProperty("User-Agent", "Java/1.6.0_30");

    conn.setRequestProperty("Content-Length", Integer.toString(urlParameters.getBytes().length));
    conn.setRequestProperty("Content-Language", "en-US");  
    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String line;
    while ((line = rd.readLine()) != null) {
        result.append(line);
    }
    rd.close();
    String resultat = result.toString();
    System.out.println("Result:::" + resultat);
} catch (Exception e) {
    e.printStackTrace();
}

Résultat

[edit]

Le problème n'apparait qu'avec la méthode "POST", pour autant que j'ai mis un "User-Agent".

Les méthode "GET, PUT, DELETE" fonctionnent. Je ne comprend vraiment pas !

Édité par WinXaito

+0 -0

Salut !

De ce que je comprends, l'API semble vouloir s'assurer que c'est bien un navigateur qui se connecte (pour quelle raison ? Mystère), et vérifie par le user-agent, mais ne râle apparemment pas si celui-ci n'est pas spécifié… Est-ce que tu es obligé de le préciser pour tes requêtes à l'API ?

Evitez qu'on vous dise de les lire : FAQ PHP et Symfony 2Tutoriel WAMP • Cliquez 👍 pour dire merci • Marquez vos sujets résolus

+1 -0
Auteur du sujet

Je ne sais pas vraiment, c'est assé étrange. (Je précise que je suis sur un hébergeur mutualisé et que je n'ai pas accès à la configuration. Et ils utilisent peut-être cette configuration afin d'éviter certains robot. Ce qui ne m'arrange pas trop).

Comme je l'ai dit, ça fonctionne avec les méthode "GET, PUT, DELETE", mais pas "POST". Du coup pour le moment je le fais avec des paramètres "GET", mais je préfèrerais des "POST".

Merci

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte