0

Ich habe festgestellt, dass für Konfigurationsänderungen AsyncTaskLoader besser funktioniert. Aber funktioniert diese Anfrage auch für POST Methode.AsyncTask Loader Http POST/GET

Alle Anfragen, die ich bisher gesehen habe, zeigen nur GET Anfrage. Ein Beispielcode hilft mir zu verstehen, wie man die Parameter sendet und POST Anfrage mit HttpUrlConnection und AsyncTaskLoader machen.

+0

Versuchen Sie, diese für die Zeit nach Beispiel mit 'AsyncTaskLoader' mit' 'HttpURLConnection https://stackoverflow.com/a/29553137/3505534 – R2R

+0

Ich habe bereits das fertig ist, aber ich mit asynctaskloader ausprobieren möchten. Das für den Kommentar obwohl – gorp88

+0

https://stackoverflow.com/questions/29552946/easy-way-to-do-post-on-httpurlconnection/29553137#29553137, das obige Beispiel ist für AsyncTask und nicht AsyncTaskLoader. Obwohl AsyncTask den Job ausführt @ R2R – gorp88

Antwort

0

Siehe Link für AsyncTaskLoader. AsyncTaskLoader basic example. (Android)

Sie können AsyncTask verwenden. Überprüfen Sie den folgenden Referenzcode.

private class LongOperation extends AsyncTask<String, Void, String> { 

      @Override 
      protected String doInBackground(String... params) { 

URL url = new URL("http://url.com"); 
       HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); 
       conn.setReadTimeout(10000); 
       conn.setConnectTimeout(15000); 
       conn.setRequestMethod("POST"); 
       conn.setDoInput(true); 
       conn.setDoOutput(true); 

       List<NameValuePair> params = new ArrayList<NameValuePair>(); 
       params.add(new BasicNameValuePair("param1", paramValue1)); 
       params.add(new BasicNameValuePair("param2", paramValue2)); 
       params.add(new BasicNameValuePair("param3", paramValue3)); 

       OutputStream os = conn.getOutputStream(); 
       BufferedWriter writer = new BufferedWriter(
     new OutputStreamWriter(os, "UTF-8")); 
       writer.write(getQuery(params)); 
       writer.flush(); 
       writer.close(); 
       os.close(); 

       conn.connect(); 
      } 

    private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException 
    { 
     StringBuilder result = new StringBuilder(); 
     boolean first = true; 

     for (NameValuePair pair : params) 
     { 
      if (first) 
       first = false; 
      else 
       result.append("&"); 

      result.append(URLEncoder.encode(pair.getName(), "UTF-8")); 
      result.append("="); 
      result.append(URLEncoder.encode(pair.getValue(), "UTF-8")); 
     } 

     return result.toString(); 
    } 

      @Override 
      protected void onPostExecute(String result) { 
       if(!TextUtils.isEmpty(result)){ 
        // Do your work 
       } 
      } 

      @Override 
      protected void onPreExecute() {} 

      @Override 
      protected void onProgressUpdate(Void... values) {} 
     } 
+0

Dieses Beispiel ist in AsyncTask nicht Asyntaskloader. Bitte lies meine Frage – gorp88