`
阅读更多
1.通过HttpClient发送请求登录系统
public static boolean login(HttpClient client,String httpUrl,String userId) throws HttpException, IOException{
boolean result = false;
// HttpClient client = new HttpClient();
client.setTimeout(5000);//5秒超时
client.setConnectionTimeout(5000);
PostMethod postMethod = new PostMethod(httpUrl);
NameValuePair userIdPair = new NameValuePair("userId", userId);
postMethod.setRequestBody(new NameValuePair[] { userIdPair });
int httpStat = client.executeMethod(postMethod);
if (httpStat == HttpStatus.SC_OK) {
result = true;
Cookie[] cookies = client.getState().getCookies();
client.getState().addCookies(cookies);
}

//String loginhtml = postMethod.getResponseBodyAsString();
//System.out.println("login:" + loginhtml);

postMethod.releaseConnection();

return result;
}

2.使用HttpClient发送HTTP请求发送文件
client.setTimeout(300000);//5分钟超时
client.setConnectionTimeout(300000);
PostMethod postMethod = new PostMethod(httpUrl);
// 设置最大连接超时时间
client.getHttpConnectionManager().getParams().setConnectionTimeout(8000);
postMethod.setParameter("Connection", "Keep-Alive");
postMethod.getParams().setContentCharset("UTF-8");
postMethod.getParams().setUriCharset("UTF-8");
List<Part> parts = new ArrayList<Part>();//封装Form表单
Iterator<String> iter = strParts.keySet().iterator();
while (iter.hasNext()) {
String key = (String) iter.next();
String value = (String) strParts.get(key);
StringPart part = new StringPart(key, value, "UTF-8");
parts.add(part);
}
File file = new File(fileName);
FilePart fp = new FilePart("uploadFile", file.getName(), file, null, "UTF-8");
parts.add(fp);
MultipartRequestEntity requestEntity = new MultipartRequestEntity(
parts.toArray(new Part[parts.size()]), postMethod.getParams());
postMethod.setRequestEntity(requestEntity);
postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler());
int httpStat = client.executeMethod(postMethod);
String responseCode = postMethod.getResponseBodyAsString();
//System.out.println(responseCode);
if (httpStat == HttpStatus.SC_OK) {
result = responseCode;
}else{
result = "1";
}
postMethod.releaseConnection();
3.解析HttpClient的请求
request.setCharacterEncoding("UTF-8");
String responseCode ="0";//远程调用时返回的响应码,0成功 1失败 2上传文件超出限制
String userId = "";
String syncType = request.getParameter("syncType");
String exportCode = "";
String fileName = "";

try {
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(8 * 1024);// 设置缓冲区大小为4kb
String tempFile = request.getRealPath("/") + "data" + File.separator + "temp" + File.separator;
File tempDir = LoaderUtil.createDirectory(tempFile);
factory.setRepository(tempDir);// 设置缓冲区目录
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("UTF-8");
upload.setSizeMax(Constants.UPLOAD_FILE_MAXSIZE);// 设置最大文件大小
List<FileItem> fileItems = upload.parseRequest(request);
Iterator<FileItem> iterator = fileItems.iterator();

while (iterator.hasNext()) {
FileItem fileItem = iterator.next();
String itemName = fileItem.getFieldName();
if ("syncType".equals(itemName)) {
syncType = fileItem.getString();
} else if ("userId".equals(itemName)) {
userId = fileItem.getString();
} else if ("uploadFile".equals(itemName)) {
if(fileItem.getSize()<=0){
responseCode = "1";//上传失败
}else if(fileItem.getSize()>Constants.UPLOAD_FILE_MAXSIZE){
responseCode = "2";//数据压缩包超出50M
}else{
File fullFile = new File(fileItem.getName());
fileName = fullFile.getName();
File saveFile = new File(baseDir, fileName);
fileItem.write(saveFile);
}
}
}
分享到:
评论

相关推荐

    HttpClient发送post请求传输json数据

    接下来,我们将详细讲解如何使用HttpClient发送POST请求并携带JSON数据。首先,创建一个HttpClient对象,然后创建HttpPost实例,设置请求URL。例如: ```java CloseableHttpClient httpClient = HttpClients.create...

    HttpClient发送http请求(post和get)需要的jar包+内符java代码案例+注解详解

    2. **HttpClient使用**:使用HttpClient发送HTTP请求通常涉及以下步骤: - 创建HttpClient对象。 - 创建HttpGet或HttpPost对象,设置请求URL。 - 对于POST请求,需要创建HttpPost对象并使用setEntity()方法设置...

    使用HttpClient管理HTTP请求

    接下来,我们可以使用HttpClient发送请求并获取响应: ```java CloseableHttpResponse response = httpClient.execute(httpGet); ``` 处理响应时,我们可以读取状态行、头部和实体内容: ```java System.out....

    httpclient 客户端发送xml报文到服务器端采用post方式(加密)传递

    接下来,使用HTTPClient发送POST请求。首先,需要初始化HttpClient实例,设置连接参数,然后创建HttpPost对象,指定服务器URL。接着,将XML字符串转换为HttpEntity,作为请求体: ```java CloseableHttpClient ...

    HttpClientUtil工具类发送get和post请求,支持http和https,支持发送文件

    1. GET请求:HttpClientUtil中的GET方法通常会创建一个HttpGet对象,设置请求的URL,并通过HttpClient的execute方法发送请求。响应结果可以通过HttpEntity获取,然后解析成字符串或者特定的对象,例如JSON或XML。 2...

    HttpClient发起HTTPs请求.rar

    以下是一个简单的示例,展示了如何使用HttpClient发送HTTPS GET和POST请求: ```java import org.apache.http.HttpEntity; import org.apache.http.client.config.RequestConfig; import org.apache....

    httpclient和RestfuL风格上传下载文件

    它们解释了如何使用HTTPClient发送请求,如何构造RESTful接口,以及如何处理分布式环境下的特定问题。良好的注释可以使代码更易读,有助于团队协作和维护。 综上所述,HTTPClient和RESTful风格的文件上传下载在Java...

    HttpClient模拟客户端传输文件

    接下来,我们将详细介绍如何使用HttpClient来模拟客户端传输文件。以下是一个简单的文件上传示例: 1. 创建HttpClient对象: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); ``` 2. ...

    java 中HttpClient传输xml字符串实例详解

    最后,我们需要使用HttpClient发送POST请求。首先,创建一个`CloseableHttpClient`实例,然后构建一个`HttpPost`对象,指定请求的URL。接着,设置`HttpPost`的实体为之前创建的`InputStreamEntity`,并执行请求: `...

    httpclient post json 数据

    要使用HttpClient发送JSON数据,你需要以下步骤: 1. **创建HttpClient实例**:首先,你需要创建一个HttpClient对象,这是发送所有HTTP请求的基础。通常,你可以在需要的地方创建它,但为了性能考虑,建议在应用...

    HttpClient使用HttpGet进行json数据传输(所使用的jar.zip)

    在这个场景中,我们关注的是如何使用HttpClient的HttpGet方法来传输JSON数据。HttpGet主要用于发起一个HTTP GET请求,通常用于从服务器获取资源,而JSON数据是互联网上常用的数据交换格式。 首先,让我们了解一下...

    Arduino HttpClient 库文件

    这个头文件定义了 `HttpClient` 类,该类封装了 HTTP 请求的相关操作,如设置 URL、POST 参数、请求方法(GET 或 POST)等,并提供了发送请求和处理响应的方法。 `HttpClient.cpp` 文件是实现文件,它实现了 `...

    HttpClient PostMethod 上传文件

    提供的Demo项目可能包含了使用HttpClient发送GET和POST请求的完整示例代码,包括文件上传和乱码处理。通过对这些代码的分析和学习,你可以更好地理解和应用HttpClient进行网络通信。 总的来说,HttpClient是Java...

    HttpClient

    当HttpClient发送请求时,它可以指定接受GZIP压缩的响应,服务器在返回数据时会对数据进行压缩,HttpClient再负责解压。这不仅降低了网络带宽的使用,也提高了数据传输的效率。 `HttpClient.cpp`很可能是实现...

    使用HttpClient发送json必须的jar包

    总结起来,使用HttpClient发送JSON数据调用第三方接口,关键在于正确配置HttpClient,创建合适的HTTP请求,设置JSON实体,并正确处理响应。同时,确保项目中包含了HttpClient、HttpCore、HttpMime以及JSON处理相关的...

    android httpclient文件上传 http协议post get方法向服务器传输数据

    最后,执行`execute()`方法发送请求,并通过`BasicResponseHandler`或自定义的响应处理器处理服务器返回的数据。 在压缩包中的`httpmethod`文件可能包含了示例代码,展示如何使用HTTPClient进行GET和POST请求,以及...

    C#的http发送post和get请求源码

    在C#编程中,HTTP(超文本传输协议)是用于客户端和服务器之间通信的主要协议,主要涉及GET和POST...这个程序可能包含一个窗口,用户输入请求参数,点击按钮后,程序使用`HttpClient`发送请求,并将结果展示在界面上。

    Java后端HttpClient Post提交文件流 及服务端接收文件流

    HttpClient Post提交多文件及多个普通参数,已经封装成工具类。 需传入 要请求的url 普通参数map 例 map.put("param1","张三"); 需要传入的文件流map 其中key为文件名 服务端接收无乱码。

Global site tag (gtag.js) - Google Analytics