不允许的方法(405),同时向uploadFileTask QuickBlox - (安卓)

问题描述:

我的问题是,我使用QBContent.uploadFileTask(文件,真实,空,新QBEntityCallback()上传文件到QuickBlox但我登陆。 。在的onError(名单列表)检查图片请不允许的方法(405),同时向uploadFileTask QuickBlox - (安卓)

  1. 这是我得到了onError方法: enter image description here
  2. 显示在logcat中: enter image description here

    这里是我的代码:

    保护无效startLoadAttachAudio(最后文件的文件) { 处理器H =新的处理程序(Looper.getMainLooper()); h.post(新的Runnable(){ 公共无效的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

请至https://gist.github.com完整的日志从logcat中为了更好地理解您的问题解决了它自己。为什么要使用旧的QuickBlox Android SDK? –

+0

请检查。 https://gist.github.com/sheikhrashid/27a90215860d1279d3bf3ed0f7d9fa4a –

+0

您使用QuickBlox Android SDK的非常旧的版本(它可以包含已在最新版本中修复的问题),请使用最新版本检查您的问题。 –

我通过更新Quickblox

的SDK版本

您可以使用上传文件库,我使用的Android异步HTTP,例如:利用发送

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 PARAMS您的Web服务,文件,您知道您的文件。 您可以编辑自己的功能。

在build.gradle中,您必须添加此代码在相关块中编译'com.loopj.android:android-async-http:1.4.9'然后同步。

+0

但是,quickblox提供了它的方法,它们完美且轻松地工作。为什么我在onError中获取方法不允许 –

+0

这意味着请求的URL不接受POST方法。用GET再试一次。 – Kayra

+0

是否有效?我认为它的工作 – Kayra