Post请求
Post请求与Get请求的区别
Get请求的参数是直接放在url后面的,而Post请求是放在请求体中的Get请求参数的长度会根据浏览器的不同实现有一定限制,而Post请求参数长度没有限制Get请求方便测试,直接输入地址即可,而Post请求不方便测试,需要借助代码或者工具进行发送Get请求和Post请求没有本质的区别,只是定义上的区别,比如如果你非要将get方式的参数放在请求体中,那么服务器也是可以接收处理的,同样,你也可以将post方式的参数拼在url后面
Post请求的使用场景
使用Post请求上传键值对使用Post请求上传json串使用Post请求上传单个文件使用Post请求上传多个文件
使用Post方法上传键值对,代码如下
public void asyncPost(String url,HashMap<String, String> params,TextHttpResponseHandler responseHandler){
RequestParams requestParams =
new RequestParams(params);
asyncHttpClient.post(url, requestParams, responseHandler);
}
/**
* post提交key-value
* @param url2
*/
private void postKeyValue(String url) {
HashMap<String, String> params =
new HashMap<String, String>();
params.put(
"username",
"俊哥");
params.put(
"password",
"111");
HttpHelper.get().asyncPost(url, params,
new TextHttpResponseHandler() {
@Override
public void onSuccess(
int arg0, Header[] arg1, String text) {
tv_result.setText(text);
}
@Override
public void onFailure(
int arg0, Header[] arg1, String arg2, Throwable arg3) {
}
});
}
使用Post方式上传文件,代码如下:
public void asyncUploadFile(String url, String key, File file,TextHttpResponseHandler responseHandler) {
RequestParams requestParams =
new RequestParams();
try {
requestParams.put(key, file);
asyncHttpClient.post(url,requestParams , responseHandler);
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
}
private void uploadFile() {
try {
File file =
new File(Environment.getExternalStorageDirectory()+
"/dog.jpg");
HttpHelper.get().asyncUploadFile(upload,
"file", file,
new TextHttpResponseHandler() {
@Override
public void onSuccess(
int arg0, Header[] arg1, String text) {
tv_result.setText(text);
}
@Override
public void onFailure(
int arg0, Header[] arg1, String arg2, Throwable arg3) {
}
});
}
catch (Exception e) {
e.printStackTrace();
}
}
常见Content-Type的类型:
普通文本:text/plain 表单键值对:application/x-www-form-urlencoded 文件数据:application/octet-stream json数据:application/json xml数据:text/xml
Post请求相关注意事项:
传递中文参数问题,Get请求同样需要注意,需要对url进行编码,对应的类有URLEncoder和URLDecoder,否则会乱码,当然很多第三方http库已经处理该问题
转载请注明原文地址: https://ju.6miu.com/read-513962.html