论httpclient上传带参数【commons-httpclient和apache httpclient区别】

需要做一个httpclient上传,然后啪啪啪网上找资料

1.首先以前系统中用到的了commons-httpclient上传,找了资料后一顿乱改,然后测试

		PostMethod filePost = new PostMethod(url);
		filePost.setParameter("system", "vinuxpost");
		try {
			Part part[] = UploadRequestHelper.getPart(request);
			filePost.setRequestEntity(new MultipartRequestEntity(part, filePost
					.getParams()));
			HttpClient client = new HttpClient();
			client.getHttpConnectionManager().getParams()
					.setConnectionTimeout(5000);
			int status = client.executeMethod(filePost);
			System.out.println(status);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

  其中一段主要代码,上传文件方式用的是byte方式,然后带上需要的参数,然后就遇到了一个奇怪的问题,就是参数过不来,然后去掉了上传文件的部分,参数就过来了,好奇怪,用了一下午,网上找资料还是没有解决,目前还没有解决!!!希望有人能告诉我,哈哈哈,也许可能是jar包版本的问题,我看网上好多资料都是可以带参数上传文件的。

希望大神能帮我解决上面的问题

2.然后接着apache httpclient上传,上代码

CloseableHttpClient httpClient = HttpClients.createDefault();
		HttpPost httpPost = new HttpPost(url);
		List<MultipartFile> listFile = UploadRequestHelper
				.getListMultipartFile(request);
		// 创建待处理的表单域内容文本
		StringBody system = new StringBody("vinuxpost");
		MultipartEntity reqEntity = new MultipartEntity();
		for (MultipartFile file : listFile) {
			ByteArrayBody bab = new ByteArrayBody(file.getBytes(),
					file.getName());
			reqEntity.addPart(file.getName(), bab);
		}
		reqEntity.addPart("system", system);
		httpPost.setEntity(reqEntity);
		CloseableHttpResponse response = httpClient.execute(httpPost);
		System.out.println("状态:" + response.getStatusLine());

  不出意外,成功了,可以继续下面的工作了,哈哈哈

总结,commons-httpclient和apache httpclient 的区别:

  首先commons-httpclient好像很少更新了,而且文档不是很充足,网上的例子很多都是重复的,apache httpclient 一直在更新,哈哈,资料比较多!!!

贴上apache httpclient maven 嘿嘿就这了

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.3.3</version>
    </dependency>

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpmime</artifactId>
        <version>4.2.1</version>
    </dependency>

需要 httpmime别忘了

时间: 2024-08-24 17:38:11

论httpclient上传带参数【commons-httpclient和apache httpclient区别】的相关文章

ajaxFileUpload上传带参数文件及JS验证文件大小

本代码片段用于spring boot+hibernate,用maven构建一:ajaxFileUpload为了实现无刷新异步提交文件,构建 iframe 然后创建form表单 再将要上传的文件写上去再提交.但是原代码 却没有处理data.所以这块内容需要我们自己加上去. 下面红色部分为修改ajaxFileUpload.js的三处地方:(对比源码修改) 1.createUploadForm: function(id, fileElementId,data); 2.if (data) { for (

WebAPI通过multipart/form-data方式同时上传文件以及数据(含HttpClient上传Demo)

简单的Demo,用于了解WebAPI如何同时接收文件及数据,同时提供HttpClient模拟如何同时上传文件和数据的Demo,下面是HttpClient上传的Demo界面 1.HttpClient部分: HttpClient通过PostAsync提交数据时,第二个请求参数为抽象类HttpContent,当前我们需要通过multipart/form-data的方式模拟请求,multipart对应的请求HttpContent为MultipartContent及其子类MultipartFormData

httpclient 上传文件、下载文件

用httpclient4.3 post方式推送文件到服务端   准备:httpclient-4.3.3.jar:httpcore-4.3.2.jar:httpmime-4.3.3.jar 标签: <无> 代码片段(1)[全屏查看所有代码] 1. [代码][Java]代码 /**  * 上传文件  * @throws  ParseException  * @throws  IOException  */    publicstaticvoidpostFile()throwsParseExcept

Xamarin.Forms 使用HttpClient上传文件

Xamarin.Forms 使用HttpClient上传文件 在应用开发中,上传图片很多时候都是不可避免的问题: 以下用HttpClient实现的上传文件代码: 1 public static async Task<string> UploadFileAsync(string url ,string path) 2 { 3 using (var client = new HttpClient()) 4 { 5 using (var content = new MultipartFormData

atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7

1. 实现原理 1 2. 大的文件上传原理::使用applet 1 3. 新的bp 2 1. 性能提升---分割小文件上传,避免一次使用内存使用过大的 2 2. Uuid还是原来文件名称:: 2 3. 监听器频繁地被调用 2 4. 结合wz easyui 2 4. 选型 2 5. Uploadify::yash js+flash 3 6. commons-fileupload:: 3 7. COS这个工具O'Reilly公司 3 8. 大的文件上传组件总结 3 5. 林吧实现ui Ajax+jq

OSS - 表单上传及参数回调

表单上传是通过web表单form的形式直接将文件上传到OSS 其中回调参数跟以往不同,需要另外设定. aliyun官方很多个demo代码,但唯一有效的是 package com.springboot.oss.service; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distribut

atitit. 文件上传带进度条 atiUP 设计 java c# php

atitit. 文件上传带进度条 atiUP 设计 java c# php 1. 设计要求 1 2. 原理and 架构 1 3. ui 2 4. spring mvc 2 5. springMVC.xml 3 6. struts extand url 3 7. behide code 3 8. 简化设计 3 1. 设计要求 带进度条 完成提示动画效果.. 2. 原理and 架构 如果需要显示进度条,实时显示文件上传进度 需要使用Ajaxj技术..up到个在的iframe黑头.. 工作原理 其实际

百度上传工具webuploader,图片上传附加参数

项目中需要上传视频,图片等资源.最先做的是上传图片,开始在网上找了一款野鸡插件,可以实现图片上传预览(无需传到后台).但是最近这个插件出了莫名的问题,不易修复,一怒之下,还是决定找个大点的,靠谱的插件吧.加之上传视频就是用的webuploader,所以上传图片也理所当然选它了. 插件初始化,js引用什么的,官方文档上都写的比较清楚,建议直接去官方api去看 http://fex.baidu.com/webuploader/getting-started.html#图片上传 官方api上值给出了上

jquery的uploadify插件多文件上传配置参数详解

最近做了个多文件上传,需要限制上传文件类型的例子.以前没做过找了一些资料,下次有用.同时也给大家做参考. uploader: uploadify.swf 文件的相对路径,该swf文件是一个带有文字BROWSE的按钮,点击后淡出打开文件对话框,默认值:uploadify.swf. script: 后台处理程序的相对路径 .默认值:uploadify.php checkScript:用来判断上传选择的文 件在服务器是否存在的后台处理程序的相对路径 fileDataName:设置一个名字,在服务器处理