如何 Android http post 到 Node.js
How to Android http post to Node.js
我想从 Android 向 Node.js 服务器发送一个简单的 HTTP POST 请求。谁能告诉我我做错了什么?
Android代码:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://54.68.139.250/bscreateuser");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("username", "hellomoto"));
nameValuePairs.add(new BasicNameValuePair("password", "pswd"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Node.js代码:
app.get('/bscreateuser', function(request, response) {
process.stdout.write("Attempted to create a user.");
bscreateUser(request.query.username, request.query.password);
response.send('-- BS -- User Created! username: ' + request.query.username +
' password: ' +
request.query.password);
});
function bscreateUser(username, password) {
messageBody = 'create_user("' + username + '","' + password + '")';
queueUrl = DAO_QUEUE_URL;
// sys.puts("--- going for BS ---");
sendSQSMessage(JSON.stringify(messageBody), queueUrl);
}
如果您正在 posting 数据
,则您创建的 GET 路由必须是 post
节点代码
app.post(..
并且参数可能会得到
request.body.username or request.body.password
在 node.js
代码中,您使用的是
app.get('/bscreateuser', ...
相反,您需要使用 post 方法
app.post('/bscreateuser', ...
并像这样访问请求的变量:
request.body.varname
我想从 Android 向 Node.js 服务器发送一个简单的 HTTP POST 请求。谁能告诉我我做错了什么?
Android代码:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://54.68.139.250/bscreateuser");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("username", "hellomoto"));
nameValuePairs.add(new BasicNameValuePair("password", "pswd"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Node.js代码:
app.get('/bscreateuser', function(request, response) {
process.stdout.write("Attempted to create a user.");
bscreateUser(request.query.username, request.query.password);
response.send('-- BS -- User Created! username: ' + request.query.username +
' password: ' +
request.query.password);
});
function bscreateUser(username, password) {
messageBody = 'create_user("' + username + '","' + password + '")';
queueUrl = DAO_QUEUE_URL;
// sys.puts("--- going for BS ---");
sendSQSMessage(JSON.stringify(messageBody), queueUrl);
}
如果您正在 posting 数据
,则您创建的 GET 路由必须是 post节点代码
app.post(..
并且参数可能会得到
request.body.username or request.body.password
在 node.js
代码中,您使用的是
app.get('/bscreateuser', ...
相反,您需要使用 post 方法
app.post('/bscreateuser', ...
并像这样访问请求的变量:
request.body.varname