下面列出了怎么用com.squareup.okhttp.MultipartBuilder的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void post(final String url, final RequestParams params,
final Net.Parser<T> parser,
final Net.Callback<T> callback,
final Object tag) {
MultipartBuilder builder = createRequestBody(params);
Request request = new Request.Builder()
.url(url).post(builder.build()).build();
call(request, parser, callback, tag);
}
private void addParams(MultipartBuilder builder, Map<String, String> params)
{
if (builder == null)
{
throw new IllegalArgumentException("builder can not be null .");
}
if (params != null && !params.isEmpty())
{
for (String key : params.keySet())
{
builder.addPart(Headers.of("Content-Disposition", "form-data; name=\"" + key + "\""),
RequestBody.create(null, params.get(key)));
}
}
}
@Override
public RequestBody buildRequestBody()
{
MultipartBuilder builder = new MultipartBuilder()
.type(MultipartBuilder.FORM);
addParams(builder, params);
if (files != null)
{
RequestBody fileBody = null;
for (int i = 0; i < files.length; i++)
{
Pair<String, File> filePair = files[i];
String fileKeyName = filePair.first;
File file = filePair.second;
String fileName = file.getName();
fileBody = RequestBody.create(MediaType.parse(guessMimeType(fileName)), file);
builder.addPart(Headers.of("Content-Disposition",
"form-data; name=\"" + fileKeyName + "\"; filename=\"" + fileName + "\""),
fileBody);
}
}
return builder.build();
}
private void addParams(MultipartBuilder builder)
{
if (params != null && !params.isEmpty())
{
for (String key : params.keySet())
{
builder.addPart(Headers.of("Content-Disposition", "form-data; name=\"" + key + "\""),
RequestBody.create(null, params.get(key)));
}
}
}
@Override
public void put(final String url, final RequestParams params,
final Net.Parser<T> parser,
final Net.Callback<T> callback,
final Object tag) {
MultipartBuilder builder = createRequestBody(params);
Request request = new Request.Builder()
.url(url).put(builder.build()).build();
call(request, parser, callback, tag);
}