Reputation: 1065
I am doing client server application(through browser with postgrelsql). I created server and it's running on one port. How can I get data from server to client. client side:
req=new HttpRequest();
req.open('get', 'http://127.0.0.1:8082/');
var rr=req.send();
print(rr);
server side:
HttpServer server = await HttpServer.bind('127.0.0.1', 8082);
await for (HttpRequest request in server) {
request.response.headers.add("Access-Control-Allow-Origin", "*");
request.response.headers.add("Access-Control-Allow-Methods", "POST,GET,DELETE,PUT,OPTIONS");
request.response.write(await consoledatabaseconnection.someList());
handleRequest(request);
request.response.close();
}
void handleRequest(HttpRequest request) {
try {
if (request.method == 'GET') {
print('request get');
request.response.write('data form server');
} else {
print('request others');
}
} catch (e) {
print('Exception in handleRequest: $e');
}
print('Request handled.');
}
In server side how can I return data.
Upvotes: 1
Views: 651
Reputation: 1065
Server Side Code
main(List<String> arguments) async {
HttpServer.bind('localhost', 8085).then((server) {
server.listen((HttpRequest request) {
request.response.headers.add("Access-Control-Allow-Origin", "*");
request.response.headers
.add("Access-Control-Allow-Methods", "POST,GET,DELETE,PUT,OPTIONS");
request.response.headers.add('Access-Control-Allow-Headers',
'Origin, X-Requested-With, Content-Type, Accept,application/x-www-form-urlencoded');
if (request.method == "POST") {
List<int> dataBody = new List<int>();
request.listen(dataBody.addAll, onDone: () async {
query_dy = new String.fromCharCodes(dataBody);
request.response.write(await databaseconnection('your response code here'));
request.response.close();
});
}
});
});
}
Client Side Code req = new HttpRequest();
req.open('post', 'http://localhost:8085');
req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
req.send('{"username": "$username","password": "$password"}');
req.onReadyStateChange.listen((_) {
if (req.readyState == HttpRequest.DONE &&
(req.status == 200 || req.status == 0)) {
//you can get response form server here
String responsefrmserver = req.responseText;
}
}
});
Upvotes: 1