2017-10-19 4 views
1

Mon problème est que je suis en utilisant QBContent.uploadFileTask (fichier, vrai, null, nouveau QBEntityCallback() pour télécharger le fichier à QuickBlox Mais je suis atterrissage. . sur onError (liste de la liste) Consultez les photos s'il vous plaîtMéthode non autorisée (405) alors que uploadFileTask à QuickBlox - (Android)

  1. C'est que je reçois dans OnError Méthode:. enter image description here
  2. Affichage en Logcat: enter image description here

    Voici mon code:

    vide startLoadAttachAudio (fichier final du fichier) protégé { Handler h = new Handler (Looper.getMainLooper()); h.post (nouveau Runnable() { public void run() {

     QBContent.uploadFileTask(file, true, null, new QBEntityCallback<QBFile>() { 
          @Override 
          public void onSuccess(QBFile qbFile, Bundle bundle) { 
           System.out.println("Success"); 
          } 
    
          @Override 
          public void onSuccess() { 
           System.out.println("Success2"); 
          } 
    
          @Override 
          public void onError(List<String> list) { 
           System.out.println("Failed."); 
    
          } 
         }); 
        }//end of run 
    }); //end of handler 
    

    }

+0

s'il vous plaît publier journal complet de LogCat à https://gist.github.com pour mieux comprendre votre problème. Pourquoi utiliser l'ancien SDK QuickBlox Android? –

+0

Cochez ceci s'il vous plait. https://gist.github.com/sheikhrashid/27a90215860d1279d3bf3ed0f7d9fa4a –

+0

vous utilisez une très ancienne version de QuickBlox Android SDK (il peut contenir des problèmes, qui ont été corrigés dans les dernières versions), s'il vous plaît utilisez la dernière version pour vérifier votre problème. –

Répondre

0

je moi-même résolu par la mise à jour de la version du SDK de Quickblox

0

Vous pouvez utiliser la bibliothèque pour le fichier de téléchargement, je suis en utilisant http Android async. Par exemple:

public void UploadFile(CarrierFileInformation carrierFileInformation) 
{ 
    String path = carrierFileInformation.GetSaveDir(); 
    File file = new File(path); 
    if(!file.exists()) 
    { 
     this.uploadedFile = true; 
     Toast.makeText(this.activity, this.activity.getResources().getString(R.string.not_found_file), Toast.LENGTH_LONG).show(); 
     return; 
    } 
    String link = Settings.DOMAIN + MethodNames.UPLOAD_FILE; 
    RequestParams requestParams = new RequestParams(); 
    try 
    { 
     requestParams.put(FieldNames.UPLOAD_FILE, file); 
     requestParams.put(FieldNames.ORDER_ID, carrierFileInformation.GetOrderId()); 
     requestParams.put(FieldNames.TEST_ID, carrierFileInformation.GetTestId()); 
     requestParams.put(FieldNames.TEST_DETAIL_ID, carrierFileInformation.GetTestDetailId()); 
     requestParams.put(FieldNames.FLAG, carrierFileInformation.GetFlag()); 
    } 
    catch (FileNotFoundException e) 
    { 
     e.printStackTrace(); 
    } 
    AsyncHttpClient asyncHttpClient = new AsyncHttpClient(); 
    asyncHttpClient.post(link, requestParams, new AsyncHttpResponseHandler() { 
     @Override 
     public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { 
      Log.e("t", "işlem tamam"); 
      uploadedFile = true; 
     } 

     @Override 
     public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { 
      uploadedFile = false; 
     } 
    }); 
} 

requestParams à l'aide pour envoyer params votre webservice, le fichier que vous connaissez votre dossier. vous pouvez modifier ma fonction.

Dans build.gradle vous devez ajouter ce code compiler 'com.loopj.android:android-async-http:1.4.9' en bloc de dépendances puis synchroniser.

+0

Mais, quickblox a fourni son sur les méthodes, qui fonctionnent parfaitement et facilement. Pourquoi la méthode n'est pas autorisée dans onError –

+0

Cela signifie que l'URL demandée n'accepte pas la méthode POST. Essayez à nouveau avec GET. – Kayra

+0

cela a-t-il fonctionné? Je pense que cela a fonctionné – Kayra