L'envoi de Requête HTTP Post avec Android

J'ai essayé d'apprendre des tonnes d'exemples, et d'autres sites, mais je ne peux pas comprendre pourquoi l'exemple que j'ai bidouillé n'est pas de travail. Je suis en train de construire une petite preuve-de-concept de l'app qui reconnait la parole et de l'envoie (le texte) comme une requête POST à un node.js serveur. La reconnaissance de la parole, j'ai confirmé pour le travail et le serveur reçoit les connexions à partir d'un navigateur régulier visite, je suis donc amené à croire que le problème est dans l'application elle-même. Ai-je raté quelque chose de petit et stupide? Pas d'erreurs sont en cours de levée, mais le serveur n'est jamais reconnaissant une connexion. Merci d'avance pour toute aide ou de conseils.

Pertinentes Java (activité principale et de la nécessaire AsyncTask):

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1001) {
if (resultCode == RESULT_OK) {
ArrayList<String> textMatchList = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
if (!textMatchList.isEmpty()) {
String topMatch = textMatchList.get(0);
PostTask pt = new PostTask();
pt.execute(topMatch);
}
}
}
}
private class PostTask extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... data) {
try {
URL url = new URL("http://<ip address>:3000");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoOutput(true);
ContentValues values = new ContentValues();
values.put("data", data[0]);
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
StringBuilder sb = new StringBuilder();
sb.append(URLEncoder.encode("data", "UTF-8"));
sb.append("=");
sb.append(URLEncoder.encode(data[0], "UTF-8"));
writer.write(sb.toString());
writer.flush();
writer.close();
os.close();
conn.connect();
return "Text sent: " + data[0];
} catch (IOException e) {
e.printStackTrace();
return "LOL NOPE";
}
}
}

Serveur JS:

var http = require('http');
const PORT=3000;
function handleRequest(request, response){
response.end('It Works!! Path Hit: ' + request.url);
console.log("Request got.");
}
var server = http.createServer(handleRequest);
server.listen(PORT, '0.0.0.0');
console.log("Listening on 3000...");
Tentez votre post avec cette apps chrome chrome.google.com/webstore/detail/advanced-rest-client/... et de voir votre réponse du serveur nodejs
A répondu avec 200 code et renvoyé la même réponse que le navigateur. Je ne se soucient même pas de transmission de données, encore, je veux juste le serveur succès de l'application de s'inscrire.
Êtes-vous essayer de frapper sur localhost? à partir de l'émulateur ou de l'appareil?

OriginalL'auteur Kienan Knight-Boehm | 2015-07-22