Come è ansible sapere che il collegamento verrà reindirizzato

Mi sono imbattuto in un problema di questo tipo – quando cerco di scaricare la favicon di alcuni siti, troverai un reindirizzamento (come google.com/ favicon.ico -> www.google.com / favicon.ico). In questo caso, il codice non salva l'image. Mi chiedo se sia ansible sapere se la pagina viene reindirizzata o come cambiare il codice per aggirare questo ostacolo. Spero per il tuo aiuto.

@Override protected Boolean doInBackground(Void...param) { Log.d("url in NetworkTask", url); HttpGet httpGet = new HttpGet(url); AndroidHttpClient httpClient = AndroidHttpClient .newInstance("Android"); HttpResponse httpResponse = null; try { httpResponse = httpClient.execute(httpGet); } catch (IOException e) { e.printStackTrace(); } if(httpResponse!=null) primaryCodeStatus = httpResponse.getStatusLine() .getStatusCode(); else Log.d("httpResponse", "NULL"); if(primaryCodeStatus != 0){ try { urlFavIcon = new URL(url).getProtocol() +"://" +new URL(url).getHost() +"/favicon.ico"; fileName = new URL(url).getHost()+"(FAVICON).jpg"; System.out.println(urlFavIcon); } catch (MalformsdURLException e) { e.printStackTrace(); } if(!(urlFavIcon.equals(""))){ httpGet = new HttpGet(urlFavIcon); try { httpResponse = httpClient.execute(httpGet); } catch (IOException e) { e.printStackTrace(); } try { is = (java.io.InputStream) httpResponse .getEntity() .getContent(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } httpClient.close(); Log.d("START SERVICE", "monitor url: "+url); return true; } else return false; } @Override public void onPostExecute(Boolean param){ if(param){ Bitmap siteIcon = BitmapFactory.decodeStream(is); String path = Environment.getExternalStorageDirectory().getPath()+"/"; System.out.println(Environment.getExternalStorageDirectory().canWrite()); File fileFavIcon = null; fileFavIcon = new File(path, fileName); if(fileFavIcon != null && siteIcon != null){ try { FileOutputStream fOS = new FileOutputStream(fileFavIcon); siteIcon.compress(Bitmap.CompressFormat.PNG, 100, fOS); fOS.flush(); fOS.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } getActivity() .startService(new Intent(getActivity(), ExService.class) .putExtra("UrlBox", new UrlBoxHelper(new UrlBox(url, 60000)))); FragmentDialogAddNewUrlConectActivity conectActivity = (FragmentDialogAddNewUrlConectActivity) getActivity(); conectActivity .fragmentDialogClickButtonListener(url, drawableFavIconUrl); } else { Toast toastInfo = Toast .makeText(getActivity().getApplicationContext(), "This link does not exist page", Toast.LENGTH_LONG); toastInfo.setGravity(Gravity.TOP, 0, 0); toastInfo.show(); } } 

EDIT

  • Il softkeyboard Android non viene mai visualizzato nell'emulatore
  • ListView nell'ordine di ArrayAdapter viene mescolato quando si scorre
  • entra in modalità multi-scelta con niente selezionato
  • android- Trova la posizione più vicina al mio posto attuale
  • Android - Custom ArrayAdapter
  • Come faccio a cancellare un movimento "trascinamento" su un Android Seekbar?
  • Qui ha scritto che ha risolto il mio problema:

     httpGet = new HttpGet(urlFavIcon); HttpParams params = new BasicHttpParams(); params.setParameter("http.protocol.handle-redirects",false); httpGet.setParams(params); httpResponse = httpClient.execute(httpGet); Header locationHeader = httpResponse.getFirstHeader("location"); if(locationHeader != null){ System.out.println(locationHeader.getValue());// locationHeader.getValue() get new link(redirect) urlFavIcon = locationHeader.getValue(); } 

  • Come controllare iso manualmente in camera2, Android
  • Imansible risolvere: com.google.code.gson: gson: 2.3.1
  • RSS feed per Google Play Store
  • Come posso generare un apk che può funzionare senza server con reattivo nativo?
  • Perché Eclipse / adb non rileverà il mio dispositivo Samsung Galaxy Tab sul mio Mac?
  • Layout di selezione delle risorse Android e valori- incongruenze
  • One Solution collect form web for “Come è ansible sapere che il collegamento verrà reindirizzato”

    Dovresti controllare il codice di stato della tua richiesta http. I codici 3xx rappresentano i reindirizzamenti. Quindi puoi reactjs correttamente.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.