Комментарии: Android: послать GET/POST запрос с помощью AsyncTask/2013/06/11/3243/android-poslat-getpost-zapros-s-pomoshhyu-asynctask/Блог о разработке игр и серверных технологияхSun, 16 Feb 2020 03:56:16 +0000hourly1https://wordpress.org/?v=5.1.19Автор: Dimasik_eypt/2013/06/11/3243/android-poslat-getpost-zapros-s-pomoshhyu-asynctask/#comment-12426Mon, 04 Apr 2016 08:13:00 +0000/?p=3243#comment-12426написать парсер под html

]]>
Автор: Karo Hovhannisyan/2013/06/11/3243/android-poslat-getpost-zapros-s-pomoshhyu-asynctask/#comment-12415Sun, 06 Mar 2016 10:17:00 +0000/?p=3243#comment-12415а как это исправить?

]]>
Автор: Suvitruf/2013/06/11/3243/android-poslat-getpost-zapros-s-pomoshhyu-asynctask/#comment-12332Thu, 06 Nov 2014 13:13:08 +0000/?p=3243#comment-12332Значит приходит на json, а html документ.

]]>
Автор: Илья/2013/06/11/3243/android-poslat-getpost-zapros-s-pomoshhyu-asynctask/#comment-12314Tue, 07 Oct 2014 15:10:48 +0000/?p=3243#comment-12314Здравствуйте. Отличная статья!
Скажите, пожалуйста, а с чем может быть связано, что при POST запросе выдаётся ошибка
Error parsing data org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject
?
Вот код:
public class POSTUpdateTask extends AsyncTask
{
Context context;
String par_name; String par_value;
String res = «», response;

public POSTUpdateTask(Context context, String par_name, String par_value, String response)
{
super();
this.context = context;
this.par_name = par_name;
this.par_value = par_value;
this.response = response;
}

@Override
protected void onPreExecute()
{
super.onPreExecute();
}

@Override
protected JSONObject doInBackground(String… urls)
{
return loadJSON(urls[0]);
}

public JSONObject loadJSON(String url)
{

JSONParser jParser = new JSONParser();
// здесь параметры необходимые в запрос добавляем
List params = new ArrayList();
params.add(new BasicNameValuePair(par_name, par_value));
params.add(new BasicNameValuePair(«Claim[date_time]», «param_value»));
params.add(new BasicNameValuePair(«Claim[contact_name]», «param_value»));
params.add(new BasicNameValuePair(«Claim[contact_phone]», «param_value»));
params.add(new BasicNameValuePair(«Claim[is_passenger]», «param_value»));
params.add(new BasicNameValuePair(«Claim[adress_from]», «param_value»));
params.add(new BasicNameValuePair(«Claim[is_point]», «param_value»));
params.add(new BasicNameValuePair(«Claim[points][0][address]», «param_value»));
params.add(new BasicNameValuePair(«Claim[points][0][note]», «param_value»));
params.add(new BasicNameValuePair(«Claim[adress_to]», «param_value»));
params.add(new BasicNameValuePair(«Claim[wishes]», «param_value»));
params.add(new BasicNameValuePair(«Claim[purposes]», «param_value»));
params.add(new BasicNameValuePair(«Claim[procuration]», «param_value»));
params.add(new BasicNameValuePair(«Claim[permit]», «param_value»));
// посылаем запрос методом POST
JSONObject json = jParser.makeHttpRequest(url, «POST», params);

return json;
}

@Override
protected void onPostExecute(JSONObject jsonData)
{
// если какой-то фейл, проверяем на null
// фейл может быть по многим причинам: сервер сдох, нет сети на устройстве и т.д.
if (jsonData != null)
{
super.onPostExecute(jsonData);
String res = «»;
try
{
res = jsonData.getString(response);
} catch (JSONException e)
{
e.printStackTrace();
}
Toast.makeText(context, res, Toast.LENGTH_LONG).show();
}
else
{

}
}
}
Вызывается следующим образом: String token = prefs.getString(«token», «»);
new POSTUpdateTask(getActivity(), «access_token», token, «id»)
.execute(«https://id20.ru/api/claim/create/»);
где токен приходит из другого GET запроса.
Спасибо!

]]>