一、使用 HttpClient 需要如下做法
1、 创建 HttpClient 的实例
2、 创建POST连接方法的实例
3、 调用client的 execute 方法来执行第二步中创建好的 method 实例
4、 读 response
5、 释放连接。无论执行方法是否成功,都必须释放连接
6、 对得到后的内容进行处理
二、创建处理上传处理的类UploadManager.java
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
public class UploadManager {
HttpClient client = new HttpClient();
PostMethod method = new PostMethod(){
public String getRequestCharSet() {
return "GBK";
}};
List<NameValuePair> params = new ArrayList<NameValuePair>();
String host;
String path;
int port;
public UploadManager setURL(String host, String path, int port) {
this.host = host;
this.path = path;
this.port = port;
client.getHostConfiguration().setHost(host, port, "http");
method.setPath(path);
return this;
}
public UploadManager addParam(String key, String value) {
params.add(new NameValuePair(key, value));
return this;
}
public boolean upload() {
try {
//将NameValuePair表单的值放入postMethod中
method.setRequestBody(params.toArray(new NameValuePair[params.size()]));
int statusCode = client.executeMethod(method);
String response = method.getResponseBodyAsString();
if(response.startsWith("SUCESS"))
return true;
}catch (HttpException e) {
//发生致命的异常,可能是协议不对或者返回的内容有问题
System.out.println("Please check your provided http address!");
e.printStackTrace();
}catch (IOException e) {
//发生网络异常
e.printStackTrace();
} finally {
params.clear();
method.releaseConnection();
}
return false;
}
}
分享到:
相关推荐
至此,我们已经成功地使用Java的HttpClient库将一个对象转换为XML字符串,并以二进制流的方式发送到了服务器。这个过程中涉及的关键技术包括对象到XML的转换(JAXB)、流操作(ByteArrayOutputStream和...
服务器接收到请求后,提取HttpEntity,解码XML字符串,然后进行解析。例如,使用DOM解析器: ```java InputStream is = httpEntity.getContent(); DocumentBuilderFactory dbf = DocumentBuilderFactory.new...
在处理XML提交时,可能涉及`StringEntity`或者`HttpEntityEnclosingRequestBase`的子类,将XML字符串设置为请求体。 接着是`SanxiangExchange.java`,这个类可能代表一种特定的HTTP交换操作,与"三湘"(Sanxiang)...
然后将其转换为字符串并创建实体: ```java String jsonStr = "{\"key1\":\"value1\",\"key2\":\"value2\"}"; StringEntity entity = new StringEntity(jsonStr, ContentType.APPLICATION_JSON); ``` 接下来,将这...
接着,我们创建一个XML字符串并将其作为请求实体设置到POST方法中。最后,执行请求并处理响应。 在实际开发中,为了确保数据的安全性,可能还需要添加身份验证、设置超时、处理异常等。此外,现代Java应用通常会...
` 将XML字符串包装成请求体,指明了内容类型为"text/xml",字符编码为"utf-8"。 6. **执行请求**:`int statusCode = client.executeMethod(myPost);` 执行POST请求,并将服务器返回的状态码存储在`statusCode`变量...
### 使用HttpClient发送POST请求,并获取响应内容 #### 一、简介 在现代软件开发中,尤其是在Web应用领域,客户端与服务器之间的通信是非常重要的环节。Java作为一种广泛应用的编程语言,提供了多种方式来实现这一...
例如,你可以使用EntityUtils将响应体转换为字符串: ```java HttpEntity entity = response.getEntity(); String responseBody = EntityUtils.toString(entity, "UTF-8"); ``` HttpClient还支持其他高级功能,如...
`EntityUtils.toString()`方法可以将`HttpEntity`内容转化为字符串,指定字符编码避免乱码问题。 ```java String s = EntityUtils.toString(response.getEntity(), "utf-8"); System.out.println(s); ``` 最后,别...
GET请求用于获取服务器上的资源,而POST请求则常用于向服务器提交数据,比如表单数据或上传文件。 1. GET请求:HttpClientUtil中的GET方法通常会创建一个HttpGet对象,设置请求的URL,并通过HttpClient的execute...
6. **Cookie管理**:HttpClient支持Cookie管理,这意味着它可以接收和存储服务器返回的Cookie字符串,并在后续请求中自动添加到请求头中。 7. **错误处理**:在处理HTTP响应时,可能会遇到错误状态码或异常的响应体...
POST请求常用于向服务器提交数据。以下是一个使用HttpClient发送POST请求的Java代码示例: ```java import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache....
4. 添加请求实体:通过`setEntity`方法设置请求的数据,如字符串、文件或表单数据。 5. 执行请求:调用`HttpClient`的`execute`方法,传入`HttpPost`对象,获取`HttpResponse`。 6. 处理响应:从`HttpResponse`中...
在这个例子中,我们创建了一个XML字符串,并通过POST方法发送到指定URL,同时设置`Content-Type`头部来表明数据格式是XML。 总之,HTTP请求中的XML数据传输是Web服务和API交互的重要组成部分。理解如何构造和发送...
C#使用Http Post方式传递Json数据字符串调用Web Service C#使用Http Post方式传递Json数据字符串调用Web Service是指在C#中使用Http Post方式传递Json数据字符串来调用Web Service。这种方式可以将业务逻辑层和界面...
写入XML字符串到HTTP连接: ```java try(OutputStream os = connection.getOutputStream()) { os.write(xmlString.getBytes(StandardCharsets.UTF_8)); } ``` 4. **处理响应** 发送完XML后,读取服务器返回...
这里,我们首先获取`SHA1`实例,对密码进行哈希计算,然后使用Base64编码,将结果转换为可在网络中传输的字符串形式。 总之,HttpClient是Java进行HTTP/HTTPS交互的强大工具,通过合理配置可以处理各种复杂场景,...
这通常涉及到将SOAP XML转换为字符串并添加到请求中: ```java String soapRequestBody = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ser=\...
- **处理返回值**:获取到的返回值通常是一个字符串,开发者可以根据业务需求解析这个字符串,如JSON解析、XML解析等。 4. **注意点**: - **连接管理**:为了防止过多的并发连接导致资源耗尽,HttpClientUtil...