Как использовать AsyncTask с urlconnection, который требует вставки return
blockquote>Вам нужно вернуть строку в вашем методе
[117 ] Также нет необходимости использовать другойUpdate()
Thread
в вашемUpdate()
методе, потому чтоAsyncTask
уже работает в фоновом режиме
SAMPLE CODE
public String Update(final String urlString){ String result=""; try { URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setDoOutput(true); connection.setDoInput(true); connection.setUseCaches(false); connection.connect(); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream(), "UTF-8")); writer.write("name=abc"); writer.close(); int responseCode = connection.getResponseCode(); if(responseCode == HttpURLConnection.HTTP_OK){ InputStream inputStream = connection.getInputStream(); StringBuilder stringBuilder = new StringBuilder(); String line; BufferedReader br = new BufferedReader(new InputStreamReader(inputStream)); while ((line = br.readLine()) != null) { stringBuilder .append(line); } result = stringBuilder .toString(); } } catch (Exception e) { e.printStackTrace(); } return result; } public class MyAsyncTask extends AsyncTask<String,String,String> { @Override protected void onPreExecute(){ super.onPreExecute(); } @Override protected String doInBackground(String...url) { return Update(url[0]); } @Override protected void onPostExecute(String result){ Log.d("TAG", result); } }
Сначала необходимо чинить в Реестре:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;826437
Перезапуск IIS
и вуаля это работает.
Но я сделал эту работу с IIS7 без проблем, но с IIS6 я получаю эту ошибку (Запрещенные символы в пути).
Попытайтесь прервать исключение в файле Global.asax. Реализуйте там (Global.asax.cs) этот метод:
protected void Application_Error(Object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
//do whatever you want with that exception
//or get the url from the context, reformat and redirect
}
У меня есть подобная программа, которая прерывает все, и попытка ее с каналом дает мне ту же ошибку. Я предполагаю, что это имеет отношение к IIS, делающему проверки тракта (mappath), прежде чем это будет знать, кто должен обработать запрос. Ваш обработчик пускает корень (значение всех вызовов), но я принимаю способ, которым делает IIS это универсально.
Таким образом, я принимаю любого или большую часть соединения каналом символов, которые Вы наклоняете, использование в Вашей файловой системе перестанет работать по запросу IIS (ДОБИРАЮТСЯ/POST).
Возможно, кто-то знает, как отключить проверку IIS. Согласно ошибке, это кажется, происходит даже, прежде чем Ваш web.config читается, поскольку это пытается определить местоположение правильной конфигурации?,
Возможно, возможно использовать Вашу собственную ошибочную страницу в качестве перенаправления назад к Вашему обработчику?
IIS по умолчанию не позволяет определенные символы в URL и считает их недопустимыми. Это - то, где Вы, которых проблема возникает из - она даже не называет обработчик, Вы имеете. Насколько я знаю, что нет никакого места, которое можно настроить, какие символы приняты через UI, за исключением Windows Registry. Я не знаю, почему Вы хотите использовать канал, но я не думаю, что это - хорошая практика. Что касается ошибочной страницы - у Вас может всегда быть своя собственная ошибочная страница для любого исключения, так, чтобы пользователи не видели ужасные сообщения.