2016-04-19 7 views
0

私はKoush/Ionライブラリを使用しています。Koush/Ionで複数のファイルとパラメータを正しく送信する方法

通常のパラメータとファイル(HTMLマルチパートフォームなど)でリクエストを送信しようとしていますが、何も送信しないようです。これは正しい方法ですか?または私は少し奇妙なやっている?

要求がファイルとなると、それはコールバックを実行するために多くの時間がかかりますので、私はそれがファイルを送信するが、間違った方法でいると思う:/

は、言語のためすみません、私はうまく説明することを願っています。

$_POSTの場合、$_GETおよび$_FILESは常に空の配列を返します。

D/API: Request: PUT: http://api.<replaced> 
D/API: 11 parameters and 1 files 
D/API: File 0: f83ee728-8b1b-4cbf-8f6c-c103456366c4 
D/API: Parameter: token = d81db04cc03faa16717a61eb494969b16e134b38 
D/API: Parameter: id_google_place = EiJDYXJyZXIgQmFydHJpbmEsIFRlcnJhc3 

答えて

0

私は最終的に問題を発見した:

Builders.Any.B builder = Ion.with(context).load(http_verb, route).setLogging(TAG, Log.ERROR); 

Log.d(TAG, parameters.size() + " parameters and " + files.size() + " files"); 

List<Part> parts = new ArrayList(); 

for (int i = 0; i < files.size(); i++) { 
    Log.d(TAG, "File " + i + ": " + files.get(i).getName()); 
    parts.add(new FilePart("file_" + i, files.get(i))); 
} 

for(ApiParameter parameter : parameters) { 
    Log.d(TAG, "Parameter: " + parameter.key + " = " + parameter.value); 
    parts.add(new StringPart(parameter.key, parameter.value)); 
} 

builder.addMultipartParts(parts); 

builder.asString().setCallback(callback); 

は、Androidのログには、この(トリミングされたが)言う

私はPUT(のみポスト付き)内のファイルを投稿することができない、と私は解決

if(http_verb.toUpperCase().equals("POST")){ 
     for (ApiParameter parameter : parameters) { 
      Log.d(TAG, "Parameter: " + parameter.key + " = " + parameter.value); 
      builder.setMultipartParameter(parameter.key, parameter.value); 
     } 
     for (int i = 0; i < files.size(); i++) { 
      Log.d(TAG, "File " + i + ": " + files.get(i).getName()); 
      builder.setMultipartFile("file_" + i, files.get(i)); 
     } 
    }else{ 
     for(ApiParameter parameter : parameters) { 
      Log.d(TAG, "Parameter" + parameter.key + " = " + parameter.value); 
      builder.setBodyParameter(parameter.key, parameter.value); 
     } 
    } 
+0

バックエンドがPHP上にある場合は、PHPコードも投稿できますか? @emmgfx – Sp4Rx

+0

@ Sp4Rx残念ながら私はコードにアクセスできません。ごめんなさい。 – emmgfx

+0

PHP側でforeachループを使って解決しました。 – Sp4Rx

関連する問題