このファイルを正しくアップロードしていますか? これが私のコードです:
削除されたコード
これは基本的に、ファイル (csv) を Web サーバーに送信する単なる非同期タスクです。
ステータス コード 400 が返されます :( 何が間違っているか知っている人はいますか?
編集: ステータス コード 411 が返されますが、コンテンツの長さを指定すると、ClientProtocolException が返されます。
ここに私のコードがあります:
UploadTask uploadtask;
public class UploadTask extends AsyncTask<Void, byte[], Boolean> {
HttpPost httppost;
@Override
protected Boolean doInBackground(Void... params) {
Boolean result = false;
String id = projectIDs.get((int) spinner.getSelectedItemId());
Log.i("TAG", id);
try {
l(send(String.valueOf(id), "http://" + site
+ "/restlet/position.csv?project=" + id,
"/csv.csv"));
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return result;
}
private void entity(String id, String file) throws JSONException,
UnsupportedEncodingException, FileNotFoundException {
// Add your data
File myFile = new File(Environment.getExternalStorageDirectory(),
file);
FileEntity fileEntity = new FileEntity(myFile, "multipart/form-data;");
fileEntity.setChunked(true);
long len = fileEntity.getContentLength();
httppost.getParams().setParameter("project", id);
httppost.setEntity(fileEntity);
//httppost.addHeader("Content-Length",String.valueOf(len));
httppost.setHeader("Content-Length", String.valueOf(len));
}
private String send(String id, String URL, String file)
throws ClientProtocolException, IOException, JSONException {
l(URL);
HttpResponse response = null;
httppost = new HttpPost(URL);
entity(id, file);
response = httpclient.execute(httppost);
Header[] head = response.getAllHeaders();
String str = String.valueOf(response.getStatusLine()
.getStatusCode());
response.getEntity().consumeContent();
return str;
}
}