解决webservice的跨域请求问题
2015-07-14 16:11
519 查看
客户端使用HttpURLConnection发送webservice请求
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HttpURLConnectionServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
System.out.println("doPost "+name);
String data = "<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'><soap:Body><ns2:sayHello xmlns:ns2='http://ws.day01_ws.atguigu.com/'><arg0>"+name+"</arg0></ns2:sayHello></soap:Body></soap:Envelope>";
URL url = new URL("http://192.168.10.165:8888/day01_ws/datatypews");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestProperty("Content-Type", "text/xml;charset=utf-8");
OutputStream os = connection.getOutputStream();
os.write(data.getBytes("utf-8"));
int responseCode = connection.getResponseCode();
if(responseCode==200) {
InputStream is = connection.getInputStream();//String xml
System.out.println("return "+is.available());
response.setContentType("text/xml;charset=utf-8");
ServletOutputStream outputStream = response.getOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while((len=is.read(buffer))>0) {
outputStream.write(buffer, 0, len);
}
outputStream.flush();
}
}
}
页面js调用:
$.post(
"HttpURLConnectionServlet",
"name="+name,
function(msg) {
//alert(msg);
var $Result = $(msg);
var value = $Result.find("return").text();
alert(value);
},
"xml"
);
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HttpURLConnectionServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
System.out.println("doPost "+name);
String data = "<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'><soap:Body><ns2:sayHello xmlns:ns2='http://ws.day01_ws.atguigu.com/'><arg0>"+name+"</arg0></ns2:sayHello></soap:Body></soap:Envelope>";
URL url = new URL("http://192.168.10.165:8888/day01_ws/datatypews");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestProperty("Content-Type", "text/xml;charset=utf-8");
OutputStream os = connection.getOutputStream();
os.write(data.getBytes("utf-8"));
int responseCode = connection.getResponseCode();
if(responseCode==200) {
InputStream is = connection.getInputStream();//String xml
System.out.println("return "+is.available());
response.setContentType("text/xml;charset=utf-8");
ServletOutputStream outputStream = response.getOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while((len=is.read(buffer))>0) {
outputStream.write(buffer, 0, len);
}
outputStream.flush();
}
}
}
页面js调用:
$.post(
"HttpURLConnectionServlet",
"name="+name,
function(msg) {
//alert(msg);
var $Result = $(msg);
var value = $Result.find("return").text();
alert(value);
},
"xml"
);
相关文章推荐
- 四、贪心
- hdu 1408 acdearm "Money, Money, Money"
- C++函数队列 BFS的好帮手
- WatchDog Timer看门狗
- hdu 1408 acdearm "Money, Money, Money"
- iOS应用推到后台继续执行
- 两条sql变为一条sql
- linux下使用svn check out 项目
- ice proxy
- MyEclipse连接不上genymotion的解决方案
- 编译原理期末上交文档
- spring3整合quartz2,实现动态添加、修改、暂停、重启定时任务
- ios网络请求 get——post 区别
- uibutton的单选和多选
- win7下sybase数据库安装 启动报空指针异常问题解决方案
- eclipse JAVA NDK build path
- 黑马程序员------C语言中常量的分类及其表示方法
- view拷贝,
- Java两种延时——thread和timer
- android开机自启动后自动解锁进入