Erreur 510 lors d'une requête avec Java

a marqué ce sujet comme résolu.

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 !

+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 ?

+1 -0

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

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

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