您的位置:首页 > 理论基础 > 计算机网络

android okhttp3中设置请求头以及上传图片

2017-06-28 12:12 351 查看
get请求

public void getAsyn() {
String mUrl = url + initParams(map);
Request request = builder.url(mUrl).build();
client.newCall(request).enqueue(this);
}
private String initParams(Map<String, String> map) {
StringBuffer params = new StringBuffer();
params.append('?');
for (String name : map.keySet()) {
try {
params.append(name).append('=').append(map.get(name)).append('&');
} catch (Exception e) {
}
}
return params.substring(0, params.length() - 1);
}


添加请求头(post)

private FormBody.Builder requestBody;
public void postAsyn() {
requestBody = new FormBody.Builder();
try {
Request.Builder builder = new Request.Builder().url(url);
builder.addHeader("X-UA","android");  //将请求头以键值对形式添加,可添加多个请求头
Request request = null;
for (Map.Entry<String, String> ele : map.entrySet()) {
requestBody.add(ele.getKey(), ele.getValue().toString());
request = builder.post(requestBody.build()).build();
}
client.newCall(request).enqueue(this);
} catch (Exception e) {
}
}


上传图片(含请求头)

public void post_UpLoadIMG(String imgpath, String token) {
MediaType MEDIA_TYPE_PNG = MediaType.parse("image/png");
MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM);
File f = new File(imgpath);
if (f != null) {
builder.addFormDataPart("img",f.getName(),RequestBody.create(MEDIA_TYPE_PNG, f))
.addFormDataPart("token", token);
}
MultipartBody requestBody = builder.build();
//构建请求
Request request = new Request.Builder()
.addHeader("X-UA", "android")
.url(url)
.post(requestBody)
.build();
client.newCall(request).enqueue(this);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: