将 FileTask 上传到 QuickBlox 时不允许使用方法 (405) - (Android)
Method Not Allowed (405) while uploadFileTask to QuickBlox - (Android)
我的问题是我正在使用 QBContent.uploadFileTask(file, true, null, new QBEntityCallback() 将文件上传到 QuickBlox。但我登陆 onError(List list).请查看图片。
- 这是我在 OnError 方法中得到的:
显示在 Logcat:
这是我的代码:
protected void startLoadAttachAudio(最终文件文件)
{
处理程序 h = 新处理程序(Looper.getMainLooper());
h.post(新的Runnable(){
public无效运行(){
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
}
您可以使用库上传文件,我正在使用 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 用于发送参数您的网络服务,文件您知道您的文件。
你可以编辑我的功能。
在 build.gradle 中,您必须添加此代码编译 'com.loopj.android:android-async-http:1.4.9' 到 dependices bloc 然后同步。
我通过更新 Quickblox 的 SDK 版本自己解决了这个问题
我的问题是我正在使用 QBContent.uploadFileTask(file, true, null, new QBEntityCallback() 将文件上传到 QuickBlox。但我登陆 onError(List list).请查看图片。
- 这是我在 OnError 方法中得到的:
显示在 Logcat:
这是我的代码:
protected void startLoadAttachAudio(最终文件文件) { 处理程序 h = 新处理程序(Looper.getMainLooper()); h.post(新的Runnable(){ public无效运行(){
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
}
您可以使用库上传文件,我正在使用 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 用于发送参数您的网络服务,文件您知道您的文件。 你可以编辑我的功能。
在 build.gradle 中,您必须添加此代码编译 'com.loopj.android:android-async-http:1.4.9' 到 dependices bloc 然后同步。
我通过更新 Quickblox 的 SDK 版本自己解决了这个问题