Faire METTRE de la demande avec les données JSON à l'aide de HttpURLConnection ne fonctionne pas
Je suis en train de faire la demande avec les données JSON à l'aide de HttpURLConnection
en Java. La façon dont je le fais, ça ne fonctionne pas. Je n'ai pas d'erreurs, donc je ne sais pas quel est le problème.
public static void main(String[] args) {
URL url;
try {
url = new URL("http://fltspc.itu.dk/widget/515318fe17450f312b00153d/");
HttpURLConnection hurl = (HttpURLConnection) url.openConnection();
hurl.setRequestMethod("PUT");
hurl.setDoOutput(true);
hurl.setRequestProperty("Content-Type", "application/json");
hurl.setRequestProperty("Accept", "application/json");
String payload = "{'pos':{'left':45,'top':45}}";
OutputStreamWriter osw = new OutputStreamWriter(hurl.getOutputStream());
osw.write(payload);
osw.flush();
osw.close();
} catch (MalformedURLException e) {
//TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
Et voici le demande, je suis en train d'essayer de faire:
Je faisais déjà des demandes pour les ressources au sein de la même application et il a bien fonctionné. Je vous serais très reconnaissant pour tous les conseils sur comment puis-je debug qui ou comment puis-je essayer de le faire d'une autre manière. Jusqu'à présent j'ai essayé en utilisant uniquement OutputStream
au lieu de OutputStreamWriter
mais ça ne fonctionne pas non plus.
J'utilise car je suis à la modification de certaines données dans le widget. Plus précisément, je veux changer la position du widget sur surface. Quand je le fais manuellement (à l'aide de l'interface web), l'application utilise la METTRE comme sur la capture d'écran que j'ai joint. J'ai essayé de le changer de POSTE et il ne fonctionne pas.
À l'aide de
À l'aide de
@PUT
est une bonne convention pour la mise à jour d'une ressource, elle n'est en aucune façon spécifique pour transférer un fichier. Voir la RFC - w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.6
OriginalL'auteur Booyaches | 2013-03-28
Vous devez vous connecter pour publier un commentaire.
Le Sun (Oracle) de la mise en œuvre de HttpURLConnection met en cache le contenu de votre post, sauf si vous lui dites être en mode streaming. Le contenu sera envoyé si vous commencez à l'interaction avec la réponse comme:
Également, conformément à la RFC 4627 vous ne pouvez pas utiliser les guillemets simples dans votre json (bien que certaines implémentations semble pas de soins).
Changez votre charge utile:
Cet exemple fonctionne pour moi
- Vous pensé de votre problème a été l'envoi de la charge utile. Mis à jour avec les informations de la RFC 4627 qui n'accepte pas les guillemets simples.
Malheureusement, j'ai essayé et cela n'aide pas.
Mis à jour avec des exemples de code (affichage de la surface que vous avez utilisé dans l'url) déplace le big green note à un emplacement aléatoire.
J'ai remarqué qu'il n'y a pas de
connection.setConnectTimeout()
- pas nécessaires pour les METTRE ?OriginalL'auteur Roger Lindsjö