JAVA Http协议的发送接收
2007-09-19 09:26
399 查看
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.servlet.*;
import javax.servlet.http.*;
public class CommServer extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK"; //编码类型
public void init() throws ServletException{ //初始化函数
}
public void yReceiverSend(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
response.setContentType(CONTENT_TYPE);
String ip = request.getRemoteHost(); //IP地址
String url = request.getRequestURI(); //url地址
InputStream inputStream = request.getInputStream(); //用二进制流接收数据
BufferedInputStream input = null; //输入流,用于接收请求的数据
byte[] buffer = new byte[1024]; //数据缓冲区
int count = 0; //每个缓冲区的实际数据长度
ByteArrayOutputStream streamXML = new ByteArrayOutputStream(); //请求数据存放对象
byte[] iXMLData = null; //请求数据存放到byte[]
//接收银行数据
try {
input = new BufferedInputStream(inputStream);
while ((count = input.read(buffer)) != -1){
streamXML.write(buffer, 0, count);
}
}catch (Exception e){
e.printStackTrace();
}finally{
if (input != null){
try {
input.close();
}catch (Exception f){
f.printStackTrace();
}
}
}
iXMLData = streamXML.toByteArray(); //得到一个byte数组,提供给平台
/////////////////////////////////////////////////
//调用相应平台程序的过程.......
// ......
// ......
/////////////////////////////////////////////////
//返回数据给银行
String returnStr = null; //平台程序返回的数据
try {
OutputStream out = response.getOutputStream();
response.setContentLength(returnStr.getBytes().length); //添加响应包长度
out.write(returnStr.getBytes());
out.flush();
out.close();
} catch (Exception e){
e.printStackTrace();
}
}
public void bSendReceiver() throws Exception{ //平台主动发起的http发送
try{
String url = "http://www.baidu.com"; //查表得到发送地址
HttpURLConnection httpConnection = (HttpURLConnection) new URL(url) //建立一个HttpURLConnection
.openConnection();
httpConnection.setRequestMethod("POST");
httpConnection.setDoOutput(true);
httpConnection.setDoInput(true);
httpConnection.setAllowUserInteraction(true);
httpConnection.connect();
//发送数据给保险公司
OutputStream outputStream = httpConnection.getOutputStream();
byte[] buffer = new byte[1024]; //平台生成的XML串
outputStream.write(buffer);
outputStream.flush();
outputStream.close();
//接收保险公司的数据数据
InputStream inputStream = httpConnection.getInputStream();
BufferedInputStream input = null; //输入流,用于接收请求的数据
buffer = new byte[1024]; //数据缓冲区
int count = 0; //每个缓冲区的实际数据长度
ByteArrayOutputStream streamXML = new ByteArrayOutputStream(); //请求数据存放对象
byte[] iXMLData = null; //请求数据存放到byte[]
try {
input = new BufferedInputStream(inputStream);
while ((count = input.read(buffer)) != -1){
streamXML.write(buffer, 0, count);
}
}catch (Exception e){
e.printStackTrace();
}finally{
if (input != null){
try {
input.close();
}catch (Exception f){
f.printStackTrace();
}
}
}
iXMLData = streamXML.toByteArray(); //得到一个byte数组,提供给平台
httpConnection.disconnect();
}catch (Exception e){
e.printStackTrace();
}
}
}
import java.net.HttpURLConnection;
import java.net.URL;
import javax.servlet.*;
import javax.servlet.http.*;
public class CommServer extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK"; //编码类型
public void init() throws ServletException{ //初始化函数
}
public void yReceiverSend(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
response.setContentType(CONTENT_TYPE);
String ip = request.getRemoteHost(); //IP地址
String url = request.getRequestURI(); //url地址
InputStream inputStream = request.getInputStream(); //用二进制流接收数据
BufferedInputStream input = null; //输入流,用于接收请求的数据
byte[] buffer = new byte[1024]; //数据缓冲区
int count = 0; //每个缓冲区的实际数据长度
ByteArrayOutputStream streamXML = new ByteArrayOutputStream(); //请求数据存放对象
byte[] iXMLData = null; //请求数据存放到byte[]
//接收银行数据
try {
input = new BufferedInputStream(inputStream);
while ((count = input.read(buffer)) != -1){
streamXML.write(buffer, 0, count);
}
}catch (Exception e){
e.printStackTrace();
}finally{
if (input != null){
try {
input.close();
}catch (Exception f){
f.printStackTrace();
}
}
}
iXMLData = streamXML.toByteArray(); //得到一个byte数组,提供给平台
/////////////////////////////////////////////////
//调用相应平台程序的过程.......
// ......
// ......
/////////////////////////////////////////////////
//返回数据给银行
String returnStr = null; //平台程序返回的数据
try {
OutputStream out = response.getOutputStream();
response.setContentLength(returnStr.getBytes().length); //添加响应包长度
out.write(returnStr.getBytes());
out.flush();
out.close();
} catch (Exception e){
e.printStackTrace();
}
}
public void bSendReceiver() throws Exception{ //平台主动发起的http发送
try{
String url = "http://www.baidu.com"; //查表得到发送地址
HttpURLConnection httpConnection = (HttpURLConnection) new URL(url) //建立一个HttpURLConnection
.openConnection();
httpConnection.setRequestMethod("POST");
httpConnection.setDoOutput(true);
httpConnection.setDoInput(true);
httpConnection.setAllowUserInteraction(true);
httpConnection.connect();
//发送数据给保险公司
OutputStream outputStream = httpConnection.getOutputStream();
byte[] buffer = new byte[1024]; //平台生成的XML串
outputStream.write(buffer);
outputStream.flush();
outputStream.close();
//接收保险公司的数据数据
InputStream inputStream = httpConnection.getInputStream();
BufferedInputStream input = null; //输入流,用于接收请求的数据
buffer = new byte[1024]; //数据缓冲区
int count = 0; //每个缓冲区的实际数据长度
ByteArrayOutputStream streamXML = new ByteArrayOutputStream(); //请求数据存放对象
byte[] iXMLData = null; //请求数据存放到byte[]
try {
input = new BufferedInputStream(inputStream);
while ((count = input.read(buffer)) != -1){
streamXML.write(buffer, 0, count);
}
}catch (Exception e){
e.printStackTrace();
}finally{
if (input != null){
try {
input.close();
}catch (Exception f){
f.printStackTrace();
}
}
}
iXMLData = streamXML.toByteArray(); //得到一个byte数组,提供给平台
httpConnection.disconnect();
}catch (Exception e){
e.printStackTrace();
}
}
}
相关文章推荐
- java实现http协议发送和接收数据
- Java Socket发送与接收HTTP消息简单实现
- Java模块 -- Http发送post数据文件,服务端Servlet接收,保存至本地
- Java Socket发送与接收HTTP消息简单实现
- java.net.ProtocolException: Unexpected status line: 关于Java/Android http post json的发送接收
- 纯 java 实现 Http 资源读取工具,支持发送和接收数据,不依赖任何第三方 jar 包
- JAVA TCP协议的发送接收
- java httpclient发送json 请求 ,go服务端接收
- Java Socket发送与接收HTTP消息简单实现
- 纯 java 实现 Http 资源读取工具,支持发送和接收数据,不依赖任何第三方 jar 包
- Java Socket发送与接收HTTP消息简单实现
- Java_网络编程_使用UDP协议发送及接收数据
- java后台接收android客户端通过http方式发送的数据
- 需要用C#http协议发送和接收数据
- 纯 java 实现 Http 资源读取工具,支持发送和接收数据
- Java基础知识强化之网络编程笔记03:UDP之UDP协议发送数据 和 接收数据
- Java Socket发送与接收HTTP消息简单实现
- java利用httpconnect向服务器发送信息与接收回馈信息
- java 发送http协议的POST请求获取数据
- Java Socket发送与接收HTTP消息简单实现