http服务向服务器发送并接受数据--------------HttpClient对象向服务器发送并接受数据
2010-06-11 12:05
525 查看
一、定义http服务向服务器发送并接受数据
(1)(连接工具类)
public class HttpURLConn {
// 发送带参数的Post请求,得到返回的xml字符串
public static String sendPost(String url, String param) throws Exception {
String result = "";
System.out.println("connent_center!");
System.out.println("url="+url);
try {
URL httpurl = new URL(url);
HttpURLConnection httpConn = (HttpURLConnection) httpurl
.openConnection();
httpConn.setDoOutput(true);
httpConn.setDoInput(true);
// httpConn.setRequestMethod("POST");
PrintWriter out = new PrintWriter(httpConn.getOutputStream());
out.print(URLEncoder.encode(param,"GBK"));
out.print(param);
out.flush();
out.close();
BufferedReader in = new BufferedReader(new InputStreamReader(
httpConn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
in.close();
} catch (Exception e) {
// System.out.println("没有结果!" + e);
log.error("sendPost fail", e);
throw e;
}
log.debug(result);
return result;
}
}
(2)调用上边方法的测试类
public class Test{
public static void main(String[] args) {
String temp="测试数据!";
URL url = new URL("http://trade.caimincun.com/servlet/NotifyDataServlet.do?");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
HttpURLConn.sendPost(url ,temp);
}
}
二、HttpClient对象向服务器发送并接受数据
测试类Test:
package *;
import java.io.IOException;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
public class Test{
public static void main(String[] args) {
//定义客户端向url发送的参数1
String transType ="参数1";
//定义客户端向url发送的参数2
String transMessage ="参数2";
//定义需要访问的url链接
String url = "http://trade.caimincun.com/servlet/HttpServlet.do";
//定义http客户端对象--httpClient
HttpClient httpClient = new HttpClient();
//定义并实例化客户端链接对象-postMethod
PostMethod postMethod = new PostMethod(url);
// 设置http的头
postMethod.setRequestHeader("ContentType","application/x-www-form-urlencoded;charset=GBK");
// 填入各个表单域的值
NameValuePair[] data = { new NameValuePair("transType", transType),
new NameValuePair("transMessage", transMessage) };
// 将表单的值放入postMethod中
postMethod.setRequestBody(data);
// 定义访问地址的链接状态---eg:400,500
int statusCode = 0;
try {
//客户端请求url数据
statusCode = httpClient.executeMethod(postMethod);
} catch (Exception e) {
e.printStackTrace();
}
// HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发
// 301或者302
if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY
|| statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {
// 从头中取出转向的地址
Header locationHeader = postMethod.getResponseHeader("location");
String location = null;
if (locationHeader != null) {
location = locationHeader.getValue();
System.out.println("The page was redirected to:" + location);
} else {
System.err.println("Location field value is null.");
}
} else {
try {
result_str = postMethod.getResponseBodyAsString();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println(new Date(System.currentTimeMillis())+" "+"代理商返回信息:"+result_str);
//释放链接
postMethod.releaseConnection();
httpClient.getHttpConnectionManager().closeIdleConnections(0);
}
}
(1)(连接工具类)
public class HttpURLConn {
// 发送带参数的Post请求,得到返回的xml字符串
public static String sendPost(String url, String param) throws Exception {
String result = "";
System.out.println("connent_center!");
System.out.println("url="+url);
try {
URL httpurl = new URL(url);
HttpURLConnection httpConn = (HttpURLConnection) httpurl
.openConnection();
httpConn.setDoOutput(true);
httpConn.setDoInput(true);
// httpConn.setRequestMethod("POST");
PrintWriter out = new PrintWriter(httpConn.getOutputStream());
out.print(URLEncoder.encode(param,"GBK"));
out.print(param);
out.flush();
out.close();
BufferedReader in = new BufferedReader(new InputStreamReader(
httpConn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
in.close();
} catch (Exception e) {
// System.out.println("没有结果!" + e);
log.error("sendPost fail", e);
throw e;
}
log.debug(result);
return result;
}
}
(2)调用上边方法的测试类
public class Test{
public static void main(String[] args) {
String temp="测试数据!";
URL url = new URL("http://trade.caimincun.com/servlet/NotifyDataServlet.do?");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
HttpURLConn.sendPost(url ,temp);
}
}
二、HttpClient对象向服务器发送并接受数据
测试类Test:
package *;
import java.io.IOException;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
public class Test{
public static void main(String[] args) {
//定义客户端向url发送的参数1
String transType ="参数1";
//定义客户端向url发送的参数2
String transMessage ="参数2";
//定义需要访问的url链接
String url = "http://trade.caimincun.com/servlet/HttpServlet.do";
//定义http客户端对象--httpClient
HttpClient httpClient = new HttpClient();
//定义并实例化客户端链接对象-postMethod
PostMethod postMethod = new PostMethod(url);
// 设置http的头
postMethod.setRequestHeader("ContentType","application/x-www-form-urlencoded;charset=GBK");
// 填入各个表单域的值
NameValuePair[] data = { new NameValuePair("transType", transType),
new NameValuePair("transMessage", transMessage) };
// 将表单的值放入postMethod中
postMethod.setRequestBody(data);
// 定义访问地址的链接状态---eg:400,500
int statusCode = 0;
try {
//客户端请求url数据
statusCode = httpClient.executeMethod(postMethod);
} catch (Exception e) {
e.printStackTrace();
}
// HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发
// 301或者302
if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY
|| statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {
// 从头中取出转向的地址
Header locationHeader = postMethod.getResponseHeader("location");
String location = null;
if (locationHeader != null) {
location = locationHeader.getValue();
System.out.println("The page was redirected to:" + location);
} else {
System.err.println("Location field value is null.");
}
} else {
try {
result_str = postMethod.getResponseBodyAsString();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println(new Date(System.currentTimeMillis())+" "+"代理商返回信息:"+result_str);
//释放链接
postMethod.releaseConnection();
httpClient.getHttpConnectionManager().closeIdleConnections(0);
}
}
相关文章推荐
- HttpClient 使用get方式发送数据到服务器并下载服务器文件
- Android - 向服务器发送数据(POST) - HTTPClient.
- 怎么通过http向服务器发送数据并接受到返回的数据
- android, httpclient,get,发送数据到服务器
- httpClient post步骤 解析json数据(向服务器传递,接受服务器传递))
- Android-向服务器提交数据(GET-POST-AsyncHttpClient)
- HTTP详解--发送多种数据的多部分对象集合(七)
- android之向服务器提交数据(GET,POST,AsyncHttpClient)
- android get或post及HttpClient与服务器数据交互
- Multipart/form-data POST文件上传详解 理论 简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form me
- HttpClient使用post方式模拟表单提交数据到服务器并下载服务器文件
- Asp.net HttpWebRequest和HttpWebResponse发送和接受任何类型数据
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
- 我的Android进阶之旅------>Android发送GET和POST以及HttpClient发送POST请求给服务器响应
- C# HttpWebRequest\HttpWebResponse\WebClient发送请求解析json数据
- Android学习笔记---- HttpClient获取服务器数据
- Ajax核心XMLHttpRequest对象、(发送请求、接收)方法和属性介绍、AJAX开发框架、数据格式提要(XML、JSON、HTML)
- (三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
- Android 向服务器提交数据(GET-POST-AsyncHttpClient)
- c++ HTTP POST请求 向服务器发送json数据