Olá Pessoal, acho pouco provavel que alguém apareça aqui para responder isso o carnaval, mas mesmo assim vamos lá! =D
tenho o seguinte código:
[code]public void catchToken(String username, String password) {
final HttpClient client = new DefaultHttpClient();
final HttpPost post = new HttpPost(URLAUTHENTICATION);
post.addHeader("Content-type", "application/x-www-form-urlencoded");
post.addHeader("Accept", "*/*");
final List<NameValuePair> values = new ArrayList<NameValuePair>();
values.add(new BasicNameValuePair("account[username]", username));
values.add(new BasicNameValuePair("account[password]", password));
new Thread(new Runnable() {
public synchronized void run() {
try {
post.setEntity(new UrlEncodedFormEntity(values));
HttpResponse response = client.execute(post);
if (response.getStatusLine().getStatusCode() != 401) {
InputStream stream = response.getEntity().getContent();
token = new Scanner(stream).useDelimiter("\\A").next();
}
else{
token = "";
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}[/code]
O metodo acima deve pegar um token meu servidor online passando parametros de autenticação depois vou retorná-lo com um simples metodo get, porem estou com um problema de sincronização, o get está sendo executado antes do meu metodo pegar o token no servidor, retornando assim um valor nulo.
Queria saber como devo fazer a thread que vai pegar o token obrigatóriamente antes do get que retorna-rá o valor!
Brigadão pessoal!