HttpPost ist fehlgeschlagen aufgrund von "Kann die Anforderung nicht mit einer nicht wiederholbaren Anforderungseinheit wiederholen"

Ich habe versucht, ein Foto auf einen Server von HttpClient in Android Mobile hochladen, aber manchmal bekomme ich diesen Fehler, es passiert nicht immer. Wer weiß, wie man es lösen kann?

Mein Code wie:

  • Setze den Fokus auf die Eingabebox und zeige die Android-Tastatur mit jquery mobile auf pagehow
  • Multi-State-Toggle-Taste
  • Google Play APK und Android Studio APK (USB Debug) verhalten sich anders
  • Android CollapsingToolbarLayout Titel Hintergrund
  • Was bedeutet "ungültige Anweisung in fillWindow ()" im Android-Cursor bedeuten?
  • Warum ist es unmöglich, den Speech Recorder auf dem Android Emulator zu benutzen?
  • HttpClient client =new DefaultHttpClient(); HttpPut httpPut = new HttpPut(uploadUrl); InputStream in =null; HttpResponse response =null; try { in = new FileInputStream(filepath); BasicHttpEntity entity = new BasicHttpEntity(); entity.setContent(in); entity.setContentLength(new File(basepath+path).length()); httpPut.setEntity(entity); response = client.execute(httpPut); System.out.println(response.getStatusLine()); consume(response.getEntity()); } 

    …….

    Fehlerinfo:

     11-22 10:32:50.370: W/System.err(15224): org.apache.http.client.ClientProtocolException 11-22 10:32:50.370: W/System.err(15224): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:557) 11-22 10:32:50.370: W/System.err(15224): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 11-22 10:32:50.370: W/System.err(15224): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 11-22 10:32:50.370: W/System.err(15224): at com.hp.nimbus.android.skydrive.util.SkyDriveUtils_Rest.doUploadPhoto(SkyDriveUtils_Rest.java:203) 11-22 10:32:50.380: W/System.err(15224): at com.hp.nimbus.android.skydrive.util.SkyDriveUtils_Rest.uploadPhoto(SkyDriveUtils_Rest.java:250) 11-22 10:32:50.380: W/System.err(15224): at com.hp.nimbus.android.skydrive.FolderMonitorService$1.onEvent(FolderMonitorService.java:36) 11-22 10:32:50.380: W/System.err(15224): at android.os.FileObserver$ObserverThread.onEvent(FileObserver.java:125) 11-22 10:32:50.380: W/System.err(15224): at android.os.FileObserver$ObserverThread.observe(Native Method) 11-22 10:32:50.380: W/System.err(15224): at android.os.FileObserver$ObserverThread.run(FileObserver.java:88) 11-22 10:32:50.380: W/System.err(15224): Caused by: org.apache.http.client.NonRepeatableRequestException: Cannot retry request with a non-repeatable request entity 11-22 10:32:50.380: W/System.err(15224): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:419) 11-22 10:32:50.380: W/System.err(15224): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 11-22 10:32:50.390: W/System.err(15224): ... 8 more 

  • DevicePolicyManager.lockNow (); Schaltet den Bildschirm nicht aus, wenn die Sicherheitseinstellungen auf Slide / None gesetzt sind
  • Android 5.0 / Lollipop: Force Rescan von / System / priv-app
  • Navigation ändern Artikel anzeigen Farbe dynamisch Android
  • Setter und Getter funktioniert. In Android. Performance Overhead?
  • HTML Mobile - die Softtastatur zu verbergen
  • Resources.getSystem () vs getResources ()
  • 2 Solutions collect form web for “HttpPost ist fehlgeschlagen aufgrund von "Kann die Anforderung nicht mit einer nicht wiederholbaren Anforderungseinheit wiederholen"”

    Es bedeutet, dass die anfängliche Anforderung fehlgeschlagen ist und weil es ein Stream ist, kann es nicht wiederholen.

    Wenn Sie das FileInputStream entfernen und stattdessen FileEntity , glaube ich, dass es wiederholbar sein wird.

    Du musst auch nicht die Länge setzen.

    Möglicherweise ein bisschen spät, um diese Frage zu beantworten, aber für Leute, die auf dieser Seite landen, ist der Grund für die Ausnahme BasicHttpEntity keine wiederholbaren Anfragen zulassen. Sie müssen die richtige HttpEntity Implementierung verwenden.

    Für den Fall dieser Frage wird es FileEntity wie Matthew Flaschen in der anderen Antwort erwähnt hat, aber für die meisten anderen Fälle kann StringEntity verwendet werden, die wiederholbare Anfragen erlaubt.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.