1、客户端发送实现
package url;
import io.IoStreamUtil;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.DefaultHttpClient;
/**
* httpclient上传文件
* @author linwei
*
*/
public class MultipartEntityUtil {
public static String postFile(File file,String url) throws ClientProtocolException, IOException {
FileBody bin = null;
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
if(file != null) {
bin = new FileBody(file);
}
StringBody username = new StringBody("13696900475");
StringBody password = new StringBody("13696900475");
//请记住,这边传递汉字会出现乱码,解决方法如下,设置好编码格式就好
//new StringBody("汉字",Charset.forName("UTF-8")));
MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("username", username);
reqEntity.addPart("password", password);
reqEntity.addPart("data", bin);
httppost.setEntity(reqEntity);
System.out.println("执行: " + httppost.getRequestLine());
HttpResponse response = httpclient.execute(httppost);
System.out.println("statusCode is " + response.getStatusLine().getStatusCode());
HttpEntity resEntity = response.getEntity();
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
if (resEntity != null) {
System.out.println("返回长度: " + resEntity.getContentLength());
System.out.println("返回类型: " + resEntity.getContentType());
InputStream in = resEntity.getContent();
System.out.println("in is " + in);
System.out.println(IoStreamUtil.getStringFromInputStream(in));
}
if (resEntity != null) {
resEntity.consumeContent();
}
return null;
}
public static void main(String[] args) throws ClientProtocolException, IOException {
File file = new File("d:/rss.xml");
String url = "http://localhost:8080/webtest/servlet/URLTest";
postFile(file,url);
}
}
2、服务端接收实现
//commons-fileupload.jar commons-io
request.setCharacterEncoding("UTF-8");
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (item.isFormField()) {
//普通文本信息处理
String paramName = item.getFieldName();
String paramValue = item.getString();
System.out.println(paramName + ":" + paramValue);
} else {
//上传文件信息处理
String fileName = item.getName();
byte[] data = item.get();
String filePath = "d:/ssssss.txt";
FileOutputStream fos = new FileOutputStream(filePath);
fos.write(data);
fos.close();
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
}
相关推荐
描述“客户端计算1+1 传递给服务器 通过服务器运算 把2返回给客户端”表明我们需要实现一个更具体的业务逻辑:客户端发送计算请求(1+1),服务端执行计算,然后将结果(2)返回给客户端。为了实现这个功能,服务端...
Mikin客户端与服务端通讯C#源码的资源,提供了一个很好的学习和实践平台,帮助我们深入理解C#语言在实现客户端与服务端交互中的应用。 首先,我们要了解客户端-服务端模型的基本概念。在这个模型中,客户端是用户...
在IT行业中,Java是一种广泛应用的编程语言,尤其在构建客户端和服务端应用程序方面有着显著的优势。本文将深入探讨Java在客户端与服务端交互中的关键知识点,帮助开发者理解和掌握相关技术。 首先,我们要理解...
3. **接收消息**:客户端同样使用`ReceiveAsync`方法异步接收来自服务端的数据,并根据需要解码和处理。 4. **交互界面**:客户端可能需要一个用户界面,让用户输入消息并展示接收到的消息。这可以使用Windows Forms...
这个主题涉及到了客户端(Android应用)如何通过网络通信与服务端(通常为Web服务器)进行数据交换,以实现功能如用户登录、数据同步、远程API调用等。以下是对这个主题的详细阐述: 首先,我们需要理解的是Android...
java实现http接口服务端、客户端代码例子。使用jar(commons-codec-1.3.jar、commons-httpclient-3.0.1.jar、commons-logging-1.1.1.jar)
在IT行业中,系统之间的文件传输是一项常见的任务,特别是在分布式系统和网络应用中。在这个场景下,客户端和...通过分析和实现这样的例子,开发者可以深入理解网络通信的基本原理,提高在实际项目中的问题解决能力。
本教程将详细讲解如何实现Android客户端的文件上传,以及服务端接收文件的过程,主要涉及的技术包括HttpClinet和异步http框架AsyncHttpClient。 首先,我们来看Android客户端的文件上传。传统的HTTP请求库...
当服务器端能够正确的在Apache上部署和运行以后 再通过安卓客户端代码访问 则可以正确通信了 PS: 代码里的服务器地址 要换成本地跑的服务器地址才可以 一般为127 0 0 1 ">首先这个代码也是从别人那里下载的 但刚...
通过上述步骤,我们就可以利用JBoss Netty构建出高性能的Web Service客户端和服务端。不过,这只是基础,深入研究Netty源码可以帮助我们更好地理解和优化系统性能,例如了解其内部的事件调度机制、缓冲区管理以及...
这篇博客"HTTPS客户端、服务端代码样例"提供了一些关于如何实现HTTPS通信的示例代码,对于理解和应用HTTPS技术非常有帮助。 首先,我们需要了解HTTPS的基础架构。HTTPS在客户端(浏览器)和服务器端之间建立一个...
本项目涉及的是客户端和服务端两部分,确保用户能够从Android设备上传多个文件到服务器,并在服务端进行处理和存储。以下是关于Android多文件上传的详细知识点: 1. **Android客户端开发**: - **...
本项目"**C# SOCKET网络通信程序(客户端+服务端)**"旨在提供一个易于理解和使用的示例,帮助开发者进行协议调试。 首先,我们来理解什么是SOCKET。SOCKET是操作系统提供的一个接口,允许应用程序通过它与其他计算机...
乐鑫Esp32学习esp32上实现本地 UDP 客户端和服务端角色,在局域网内实现通讯。博文:https://blog.csdn.net/xh870189248/article/details/80737111
HttpClient Post提交多文件及多个普通参数,已经封装成工具类。 需传入 要请求的url 普通参数map 例 map.put("param1","张三"); 需要传入的文件流map 其中key为文件名 服务端接收无乱码。
本示例探讨的是如何使用HTTPClient库在客户端发送XML报文到服务器端,且报文通过POST方法传递,并可能涉及加密处理,确保数据的安全性。 首先,HTTPClient是Apache提供的一款强大的Java HTTP客户端API,它允许...
在这个压缩包文件"使用HTTP实现断点续传功能包括客户端、服务端代码.zip"中,我们预计会找到一个C#编写的客户端和服务器端的代码示例。 首先,我们要理解HTTP协议中的Range请求头。在HTTP 1.1中,客户端可以通过...
这个C#的RESTful服务端和客户端Demo,旨在帮助开发者快速理解和实践RESTful API的设计和实现,是学习和开发相关应用的良好起点。通过实际操作和修改这个Demo,你可以更深入地了解RESTful架构的精髓以及C#在Web服务...
总结来说,HttpClient是Java开发中实现WebService客户端的理想选择,它提供了丰富的功能和易用的API。通过理解HttpClient的工作原理和使用方法,开发者可以高效地构建和维护与HTTP服务器交互的应用程序。