Boa tarde gente, tudo bem?
Sou verde ainda na programação, mas a pouco tempo comecei a desenvolver para Android e consegui fazer uma aplicação que envia um comando do celular para um webservice, tudo jóia!. Mas analisando a classe "DefaultHttpClient", pelos exemplos que venho pesquisando (como [url]http://blog.dahanne.net/2009/08/16/how-to-access-http-resources-from-android/[/url]) é passado por parametro apenas o endereço do webservice na url.
Gostaria de sabe como passar junto outra string, que seria o comando em si para o webservice analisar, e como no webservice obter o parametro e executar na máquina. Alguma idéia? Estou pesquisando ainda, se descobrir já posto e mato essa charada.
Abaixo segue o código da aplicação android e do webservice:
//aplicacao android - url seria = http://192.168.100.2:9090/projetoExecutaComando - por exemplo
public InputStream getWebData(String url){
DefaultHttpClient httpClient = new DefaultHttpClient();
URI uri;
InputStream data = null;
try {
uri = new URI(url);
HttpGet method = new HttpGet(uri);
HttpResponse response = httpClient.execute(method);
data = response.getEntity().getContent();
} catch (Exception e) {
e.printStackTrace();
}
return data;
}
//codigo do webservice
@WebServlet("/projetoExecutaComando")
public class ExecutaComando extends HttpServlet {
private static final long serialVersionUID = 1L;
public ExecutaComando() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String comando = "calc.exe";
try{
Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL "+comando);
PrintWriter out = response.getWriter();
out.write("Comando calc.exe executado por doGet");
}
catch (IOException e){
e.printStackTrace();
}
}
}