use of com.koushikdutta.async.http.body.MultipartFormDataBody in project AndroidAsync by koush.
the class HttpServerTests method setUp.
@Override
protected void setUp() throws Exception {
super.setUp();
httpServer = new AsyncHttpServer();
httpServer.setErrorCallback(new CompletedCallback() {
@Override
public void onCompleted(Exception ex) {
fail();
}
});
httpServer.listen(AsyncServer.getDefault(), 5000);
httpServer.get("/hello", new HttpServerRequestCallback() {
@Override
public void onRequest(AsyncHttpServerRequest request, AsyncHttpServerResponse response) {
assertNotNull(request.getHeaders().get("Host"));
response.send("hello");
}
});
httpServer.post("/echo", new HttpServerRequestCallback() {
@Override
public void onRequest(AsyncHttpServerRequest request, final AsyncHttpServerResponse response) {
try {
assertNotNull(request.getHeaders().get("Host"));
JSONObject json = new JSONObject();
if (request.getBody() instanceof UrlEncodedFormBody) {
UrlEncodedFormBody body = (UrlEncodedFormBody) request.getBody();
for (NameValuePair pair : body.get()) {
json.put(pair.getName(), pair.getValue());
}
} else if (request.getBody() instanceof JSONObjectBody) {
json = ((JSONObjectBody) request.getBody()).get();
} else if (request.getBody() instanceof StringBody) {
json.put("foo", ((StringBody) request.getBody()).get());
} else if (request.getBody() instanceof MultipartFormDataBody) {
MultipartFormDataBody body = (MultipartFormDataBody) request.getBody();
for (NameValuePair pair : body.get()) {
json.put(pair.getName(), pair.getValue());
}
}
response.send(json);
} catch (Exception e) {
}
}
});
}
use of com.koushikdutta.async.http.body.MultipartFormDataBody in project ion by koush.
the class HttpTests method testMultipartFileContentType.
public void testMultipartFileContentType() throws Exception {
File f = getContext().getFileStreamPath("empty");
f.getParentFile().mkdirs();
f.createNewFile();
AsyncHttpServer httpServer = new AsyncHttpServer();
httpServer.post("/", new HttpServerRequestCallback() {
@Override
public void onRequest(AsyncHttpServerRequest request, final AsyncHttpServerResponse response) {
MultipartFormDataBody body = (MultipartFormDataBody) request.getBody();
body.setMultipartCallback(new MultipartFormDataBody.MultipartCallback() {
@Override
public void onPart(Part part) {
response.send(part.getContentType());
}
});
}
});
try {
httpServer.listen(AsyncServer.getDefault(), 6666);
String mime = Ion.with(getContext()).load("http://localhost:6666/").setMultipartFile("foo", "test/mime", f).asString().get(1000, TimeUnit.MILLISECONDS);
assertEquals(mime, "test/mime");
} finally {
httpServer.stop();
}
}
use of com.koushikdutta.async.http.body.MultipartFormDataBody in project ion by koush.
the class ProgressTests method testUpload.
public void testUpload() throws Exception {
AsyncHttpServer httpServer = new AsyncHttpServer();
try {
httpServer.listen(Ion.getDefault(getContext()).getServer(), 5000);
httpServer.post("/", new HttpServerRequestCallback() {
@Override
public void onRequest(AsyncHttpServerRequest request, final AsyncHttpServerResponse response) {
MultipartFormDataBody multipartFormDataBody = (MultipartFormDataBody) request.getBody();
multipartFormDataBody.setMultipartCallback(new MultipartFormDataBody.MultipartCallback() {
@Override
public void onPart(Part part) {
}
});
multipartFormDataBody.setEndCallback(new CompletedCallback() {
@Override
public void onCompleted(Exception ex) {
response.send("Got parts!");
}
});
}
});
final Semaphore semaphore = new Semaphore(0);
Ion.with(getContext()).load("http://localhost:5000/").uploadProgress(new ProgressCallback() {
@Override
public void onProgress(long downloaded, long total) {
semaphore.release();
}
}).setMultipartParameter("foo", "bar").asString().get();
assertTrue(semaphore.tryAcquire());
} finally {
Ion.getDefault(getContext()).getServer().stop();
}
}
use of com.koushikdutta.async.http.body.MultipartFormDataBody in project ion by koush.
the class IonRequestBuilder method setMultipartParameter.
@Override
public IonRequestBuilder setMultipartParameter(String name, String value) {
if (multipartBody == null) {
multipartBody = new MultipartFormDataBody();
setBody(multipartBody);
}
if (value != null)
multipartBody.addStringPart(name, value);
return this;
}
use of com.koushikdutta.async.http.body.MultipartFormDataBody in project AndroidAsync by koush.
the class MultipartTests method testUpload.
public void testUpload() throws Exception {
File dummy = getContext().getFileStreamPath("dummy.txt");
final String FIELD_VAL = "bar";
dummy.getParentFile().mkdirs();
FileOutputStream fout = new FileOutputStream(dummy);
byte[] zeroes = new byte[100000];
for (int i = 0; i < 10; i++) {
fout.write(zeroes);
}
fout.close();
// StreamUtility.writeFile(dummy, DUMMY_VAL);
AsyncHttpPost post = new AsyncHttpPost("http://localhost:5000");
MultipartFormDataBody body = new MultipartFormDataBody();
body.addStringPart("foo", FIELD_VAL);
body.addFilePart("my-file", dummy);
body.addStringPart("baz", FIELD_VAL);
post.setBody(body);
Future<String> ret = AsyncHttpClient.getDefaultInstance().executeString(post, new StringCallback() {
@Override
public void onCompleted(Exception e, AsyncHttpResponse source, String result) {
}
});
String data = ret.get(10000, TimeUnit.MILLISECONDS);
assertEquals(data, FIELD_VAL + (zeroes.length * 10) + FIELD_VAL);
}
Aggregations