httpclient4.1发起POST请求传递文件

1.发起POST请求的前提

HttpClient client = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
MultipartEntity httpEntity = new MultipartEntity();

client请求的执行体
httpPost是请求中的参数的主要负载体
httpEntity 是具体承载参数的地方

2.设置header

httpPost.setHeader(String name, String value)

3.设置请求值

post的请求参数是通过

 httpPost.setEntity(HttpEntity entity)

HttpEntity这个借口有一堆实现类,这些类都可以作为值得载体,可以根据不同的请求方式选取不同的载体

image.png

可以看到有这些个实现类,这里举俩个常用的

1)模拟表单的post请求

这种请求需要用到上边我们实例化的MultipartEntity类,顾名思义这是意思多个参数,它的主要方法是

httpEntity.addPart(String name, ContentBody contentBody)

其中ContentBody是个接口,它的实现类也就是对应表单提交的文字,文件等

image.png

常用的StringBody就是提交文字了
ByteArrayBody、FileBody、InputStreamBody分别对应文件的几种格式 可以按需选择

2)传递JSON格式内容

JSON字符串的请求体内容本质就是字符串,但是一般要求在头上加上
httpPost.setHeader("Content-Type", "application/json");
主体内容的传递是通过StringEntity作为载体

new StringEntity(jsonObject.toJSONString(), "utf-8")

当参数组装好后,需要调用httpPost.setEntity(HttpEntity entity)将数据加入,··

4.发起请求

client.execute(httpPost)

5.接受解析返回值

//                对返回结果进行处理 获取返回的汇川数据储存信息
            HttpEntity responseEntity = response.getEntity();
            StringBuilder builder = new StringBuilder();
            if (responseEntity != null) {
                InputStream is = responseEntity.getContent();
                BufferedReader br = new BufferedReader(new InputStreamReader(is,UTF_8));
                String tempStr;
                while ((tempStr = br.readLine()) != null) {
                    builder.append(tempStr);
                }
                br.close();
            }

注意一般塞入参数的时候可以设置编码的地方一定要设置编码,防止因为环境产生问题

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,246评论 19赞 139
  • apache下的httpclient工具可大大简化开发过程中的点对点通信,本人将以微信多媒体接口为例,展示http...
    划破的天空阅读 5,575评论 0赞 32
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 23,122评论 1赞 92
  • 光阴荏苒,仍念那年那月那日那时; 时过境迁,勿忘那山那水那景那人。 (1) 一直想写点什么,但总是提笔忘字,生活已...
    痞子柒阅读 307评论 0赞 1
  • 初来咋到,想象丰富,浮云落地,执着现在。或许,每个人在面临新事情,都有此心理状态。大学两年了,时不时会想,在...
    溪湖至白阅读 422评论 4赞 7

友情链接更多精彩内容