metodo setRequestProperty che dà java.lang.IllegalStateException: Imansible impostare il metodo dopo la connessione

HttpURLConnection con = null; Response response = new Response(); String TAG = "HttpConHandler"; try{ /* * IMPORTANT: * User SHOULD provide URL Encoded Parms */ Log.p(TAG, "URL="+ urlStr); String q=httpHeaders.get("Authorization"); URL url = new URL(urlStr); con = (HttpURLConnection) url.openConnection(); con.setRequestProperty("Authorization", q); con.setRequestProperty("GData-Version", "3.0"); 

Ciao, sto ottenendo java.lang.IllegalStateException: Cannot set method after connection is made errore di connessione quando viene chiamato il metodo setRequestProperty , ma quando chiamo questo metodo prima della connessione ottengo NullPointerException perché con è nullo. Cosa posso fare per risolvere questo problema?

  • Android SDK AsyncTask doInBackground non in esecuzione (sottoclass)
  • Layout personalizzato Android
  • Scorri in modo programmato la parte superiore di un NestedScrollView
  • Ogni 1 minuto Gps LatLong ottenuto dal server che mostra in mappa come marcatore. Ma Marker Geting Duplicazione
  • React-native pubnub WebRTC Video Chat
  • L'anteprima di un tema non riesce in Eclipse
  • Come impostare il cursore a destra (EditText)?
  • Android.system.ErrnoException: isConnected non riuscito: ECONNREFUSED (Connessione rifiutata)
  • android Google Map non si carica all'interno di TabHost
  • Test di unità con Android volley
  • Ottimizzazioni della batteria (wakelocks) su Huawei EMUI 4.0+
  • Android JNI - Chiamata AttachCurrentThread senza DetachCurrentThread
  • 3 Solutions collect form web for “metodo setRequestProperty che dà java.lang.IllegalStateException: Imansible impostare il metodo dopo la connessione”

    Non utilizzare il metodo di convenienza dell'URL, utilizzare una HttpURLConnection o un'altra libreria.

    Questo può funzionare:

     URL url = new URL(urlStr); con = (HttpURLConnection) url.openConnection(); con.setDoOutput(true); con.setRequestProperty("Authorization", q); con.setRequestProperty("GData-Version", "3.0"); 

    Controlli questo URL da Google: http://developer.android.com/reference/java/net/HttpURLConnection.html

    È bene utilizzare il metodo openConnection() prima di impostare le intestazioni. Ecco i passaggi dalla documentazione:

    1. Ottenere una nuova HttpURLConnection chiamando URL.openConnection () e lanciare il risultato in HttpURLConnection.
    2. Preparare la richiesta. La properties; primaria di una richiesta è il suo URI. Le intestazioni di richiesta possono includere anche metadati quali credenziali, tipi di contenuti preferiti e cookie di session.
    3. Caricando facoltativamente un corpo di richiesta. Le istanze devono essere configurate con setDoOutput(true) se includono un corpo di richiesta. Trasmettere i dati scrivendo al stream restituito da getOutputStream() .
    4. Leggi la risposta. Le intestazioni di risposta includono tipicamente metadati, ad esempio il tipo e la lunghezza del contenuto del corpo di risposta, le date modificate e i cookie di session. Il corpo di risposta può essere letto dal stream restituito da getInputStream() . Se la risposta non ha un corpo, questo metodo restituisce un stream vuoto.
    5. Disconnect. Una volta letto il corpo di risposta, HttpURLConnection deve essere chiuso chiamando la disconnect() . La disconnessione rilascia le risorse detenute da una connessione in modo che possano essere chiuse o riutilizzate.

    Tuttavia, se il problema persiste, puoi provare a eseguire il debug di codice e controllare la connessione privata di connessione. Collegata per vedere where diventa realtà; Ho provato un problema simile dopo aver effettuato una chiamata al metodo getContentType() .

    Altrimenti puoi passare all'API HttpClient:

      HttpClient httpclient = new DefaultHttpClient(); // Prepare a request object HttpGet httpget = new HttpGet(url); // Execute the request HttpResponse response; try { response = httpclient.execute(httpget); .... 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.