Edgard,
Supondo que o ML e os Correios não possuam uma API, a única forma seria fazendo as requisições “manualmente”.
Eu imagino um fluxo mais ou menos assim: você envia um POST fazendo o login do cliente, pega o retorno da página pra verificar se o login teve sucesso. Faz um request (GET) para acessar a página dos produtos dele e pega o retorno usando o DOM. Aí acessa o correio e verifica a situação da encomenda.
Dá uma olhada na biblioteca Apache Commons, com ela pra fazer algo mais ou menos assim:
[code]HttpPost httpost = new HttpPost(“url.da.pagina.que.vc.precisa.enviar.dados”);
List nvps = new ArrayList();
nvps.add(new BasicNameValuePair(“campo1”, valor1));
nvps.add(new BasicNameValuePair(“campo1”, valor1));
httpost.setEntity(new UrlEncodedFormEntity(nvps, Consts.UTF_8));
HttpResponse response = client.execute(httpost);
[/code]Até aqui foi feito um request http com método POST. Esse client é um DefaultHttpClient(). Você deve usar o mesmo para fazer todas as requisições, pois é ele que mantém os Cookies entre as requisições. A menos que você queira tratar os Cookies manualmente, mas aí já é masoquismo. Agora é só ler os dados do response. O interessante é pegar esse retorno e mandar pra uma outra biblioteca que trata o HTML, a Jsoup. Com ela você terá acesso aos objetos HTML igual teria no JavaScript, usando DOM:
[code]Document document = Jsoup.parse(response.getEntity().getContent(), “UTF-8”, “url.base”);
Element e = document.getElementById(“message”);[/code]Esse UTF-8 aí pode ser null, geralmente vem informado no HTML e o parse pega de lá. A url.base é pra completar links relativos, caso o Jsoup os encontre na página, já devolve o caminho completo pra você. Pra debugar essas situações assim, com requests e responses personalizados o bom é usar o WireShark. Aí você faz o processo natural, pelo navegador, com o WireShark ligado, pra descobrir todas as requisições feitas no processo. Ignora as requisições de imagens, css, js, etc. Aí faz apenas as requisições úteis e monta elas no seu código. Na hora de testar o código, olha no WireShark pra ver o que ele está realmente fazendo.
Com isso já dá pra você começar. Não é fácil, pois o normal é usar APIs para fazer essa comunicação. Se o MercadoLivre mudar os nomes dos elementos ou os campos necessários nos POSTs, o seu programa precisará ser ajustado para voltar a funcionar.