请问OkHttp 3如何设置post请求的编码呢?
这是create方法的源码:
public static RequestBody create(MediaType contentType, String content) { Charset charset = Util.UTF_8;
if (contentType != null) {
charset = contentType.charset();
if (charset == null) {
charset = Util.UTF_8;
contentType = MediaType.parse(contentType + "; charset=utf-8");
}
}
byte[] bytes = content.getBytes(charset);
return create(contentType, bytes);
}
这个content是类似于“a=88&b=99”这样的字符串吗?
回答:
推荐你使用 postman ,这个是 chrome 的一款http调试的插件,他可以直接生成okhttp 的代码。
这是我自己调试时用 postman生成的okhttp 的java代码。
回答:
我用下面的方式服务器获取的登录的账号和密码都是null,但是我直接砸url拼接的话会获取到值。我想请教下这是为什么。
public static String sendByPostMap(String url, Map<String, String> params) { String result;
OkHttpClient client = new OkHttpClient();
StringBuilder content = new StringBuilder();
Set<Map.Entry<String, String>> entrys = params.entrySet();
Iterator<Map.Entry<String, String>> iterator = params.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> entry = iterator.next();
content.append(entry.getKey()).append("=").append(entry.getValue());
if (iterator.hasNext()) {
content.append("&");
}
}
RequestBody requestBody = RequestBody.create(MEDIA_TYPE_TEXT, content.toString());
Request request = new Request.Builder().url(url).post(requestBody).build();
Response response = null;
try {
response = client.newCall(request).execute();
assert response.body() != null;
result = response.body().string();
System.out.println("result = " + result);
return result;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
//String url = "http://172.18.9.166:8080/user/login.kq";
//String url = "http://172.18.9.166:8899/demo/postByMap?loginName=admin&loginPassword=Hans1107laser";
String url = "http://172.18.9.166:8899/demo/postByMap";
Map<String, String> params = new HashMap<>();
params.put("loginName", "admin");
params.put("loginPassword", "123456");
String result = sendByPostMap(url, params);
System.out.println("result = " + result);
}
以上是 请问OkHttp 3如何设置post请求的编码呢? 的全部内容, 来源链接: utcz.com/a/165965.html