I have a problem with AsyncTask in android. In android programming I am beginner and I can't find any solution.
Here is my code
onCreate function
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button submitButton = (Button) findViewById(R.id.get_ingredient);
submitButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
new Task().execute();
}
});
}
and my private Task class with doInBackground
private class Task extends AsyncTask<Void, Void, Ingredient> {
@Override
protected Ingredient doInBackground(Void... params) {
final String url = getString(R.string.base_uri);
RestTemplate restTemplate = new RestTemplate();
Map<String, Integer> param = new HashMap<String, Integer>();
param.put("id", 1);
Ingredient ingredient = restTemplate.getForObject(url + "/ingredient/{id}", Ingredient.class, param);
return ingredient;
}
}
And here is my errors:
02-03 16:13:47.010 2463-2476/pl.kyniu.app.cookbook E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1
Process: pl.kyniu.app.cookbook, PID: 2463
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:300)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Caused by: org.springframework.web.client.HttpClientErrorException: 401 Unauthorized
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:76)
at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:590)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:546)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:511)
at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:276)
at pl.kyniu.app.cookbook.MainActivity$updateTask.doInBackground(MainActivity.java:97)
at pl.kyniu.app.cookbook.MainActivity$updateTask.doInBackground(MainActivity.java:78)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
What I'm doing wrong?