下面这几行代码花了我近二天的时候搞定的,还是有点小的BUG,这里面解决了发送中文乱码的问题!
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.io.StringReader;
import java.net.Socket;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
public class Hello {
public Hello() throws Exception{
URL url = new URL("http://localhost:6666/mxlhelloword/mxlhellowordBeanImpl?wsdl&mode=ws_policy");
Socket s = new Socket(url.getHost(), url.getPort());
try
{
s.setSoTimeout(30000); // Timeout 30 seconds
//OutputStream socketOut = s.getOutputStream();
InputStream socketIn = s.getInputStream();
String temp="夺在在在在 夺在在在在夺在在在在";
String content = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:mxl=\"http://www.sap.com/caf/demo.sap.com/mxlhelloword/modeled/mxlhelloword\">" +
" <soapenv:Body>" +
" <mxl:sayHello>" +
" <value>"+temp+" </value>" +
" </mxl:sayHello>" +
" </soapenv:Body>" +
"</soapenv:Envelope>\r\n";
String requestString = "POST " + url.getPath() + " HTTP/1.1\r\n"
+ "Host: " + url.getHost() + ":" + url.getPort()+ "\r\n"
+ "Content-Type: text/xml; charset=utf-8\r\n"
+ "Connection: close\r\n"
+ "Content-Length: " + (content.length()+(temp.length()*2)) + "\r\n"
+ "SOAPAction: \042\042\r\n"
+ "\r\n"
+ content;
// Slow way of writing, but I had to do it this way for
// another SOAP server, and the request is small.
// byte [] request = requestString.getBytes("UTF8");
OutputStream os = s.getOutputStream();
PrintStream ps = new PrintStream(os,true,"UTF-8");
ps.println(requestString);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte [] buffer = new byte[4096];
while (true)
{
int nRead = socketIn.read(buffer);
if (nRead == -1)
{
break;
}
bos.write(buffer, 0, nRead);
}
String responseString = bos.toString("UTF8");
System.out.println(new String(buffer));
} catch (Exception e) {
}
finally
{
if(s!=null) s.close();
}
}
public static void main(String args[]){
try {
new Hello();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
分享到:
相关推荐
利用socket thread dom4j log4j axis2 soap PBE加解密等相关技术实现的socket协议调用webservice服务。 由于银行后台核心系统普遍采用的是UNIX下C/C++的开发平台,如果需要调Web Service往往需要借助一些第三方的库...
综上所述,"http和WebService 调用接口Java代码demo"这个主题涵盖了Java通过HTTP进行接口调用的基本方法,以及Web Service的使用,特别是结合Spring Boot的场景。在实际项目中,理解并熟练运用这些技术能够帮助我们...
- 方法参数会被转换成SOAP消息,通过HTTP发送到服务端。 - 服务端处理请求并返回响应,再由代理类解析结果。 ```java MyWebService service = new MyWebService_Service().getMyWebServicePort(); String ...
在这个DEMO中,`MessageSendClient.java`可能包含了建立Socket连接,向服务器发送短信请求,以及接收服务器响应的逻辑。TCP确保数据的可靠传输,而Socket则为应用程序提供网络通信的桥梁。 2. **Socket编程**:在...
4. **Webservice客户端**:使用Spring的WebServiceTemplate或Apache CXF库,配置客户端代理,发送SOAP请求并处理响应。 5. **Webservice服务端**:创建Webservice服务,可以使用JAX-WS或JAX-RS,结合Spring MVC实现...
【标题】"webservice.rar" 是一个压缩包文件,它主要关注的是Java编程领域,特别是与Web服务相关的技术。在Java编程中,Web服务是一种通过HTTP协议交换数据的方法,允许不同应用程序之间进行通信。Web服务通常基于...
在 C/S 架构中,客户端向服务器发送请求,服务器处理请求并返回结果。Webservice 使得不同的应用程序能够通过网络进行通讯,实现了数据交换和共享。 创建 Webservice 创建 Webservice 需要遵循以下步骤: 1. 创建...
Struts 则是一个 MVC 框架,用于处理 HTTP 请求和视图呈现。 学习过程中,从配置文件入手,理解每个框架的工作机制和协作方式,逐渐深入高级用法和框架原理。同时,不断地进行项目实践,不断思考和总结,通过编写...
在Java中,`java.net.Socket`类代表一个客户端socket,通过它,程序可以向服务器发起连接请求;而`ServerSocket`类则用于服务器端,监听客户端的连接请求。使用Socket通信的基本步骤包括创建Socket对象、建立连接、...
import org.apache.http.impl.client.HttpClients; HttpClient httpClient = HttpClients.createDefault(); // 进行HTTP请求... ``` #### 五、使用WebService 在Android中可以通过多种方式调用WebService。 ...
Flex内置了HTTPService组件,可以发送HTTP请求到Java Web服务。通过这种方式,Flex可以调用Java Servlets、JSP或RESTful服务。Java后端可以通过Servlet API或Spring MVC框架来处理这些请求。此外,Flex也可以使用...
5. **发送请求**:执行HTTP请求并获取响应。 6. **处理响应**:解析返回的数据,通常可能是XML或JSON格式,然后转换成对应的Java对象。 7. **关闭连接**:完成操作后,记得关闭连接,释放资源。 在开发过程中,...
JSP用于创建动态网页,将HTML与Java代码结合,而Servlet是服务器端的Java小程序,负责处理HTTP请求。 7. Servlet:Servlet是Java EE(现在称为Jakarta EE)的一部分,它是服务器端的Java应用程序,用于接收和响应...
此Java程序实现了简单的HTTP服务器,可以处理来自客户端的请求并返回响应。 - **核心代码解析**: - `ServerSocket server = new ServerSocket(PORT);`:创建监听指定端口的服务器套接字。 - `Socket client = ...
在Java中,`java.net.Socket`和`java.net.ServerSocket`类用于建立TCP连接,实现数据的双向传输。 5. **`ws_itcast_1012_client`**: 这可能是Web服务的客户端程序。客户端通过调用服务端的接口来获取或发送数据。...
3. **Java网络编程**:Java的Socket编程允许开发网络应用程序,支持TCP/IP和UDP通信,同时NIO(非阻塞I/O)提供高性能的网络编程模型。 4. **Java RMI(远程方法调用)**:RMI允许Java对象在不同的JVM之间进行远程...
例如,在Android应用中,可以构造一个带有查询字符串的URL来发送请求,如`http://example.com/api?param1=value1¶m2=value2`。 ### 1.2 使用POST方式请求提交 除了GET方法之外,还可以使用POST方式来提交数据...
【Web服务(Webservice)详解】 Web服务是一种基于互联网的标准方式,允许应用程序之间进行交互,实现了数据和功能的共享。它使用XML(可扩展标记语言)作为数据交换格式,通过SOAP(简单对象访问协议)传输数据,...
- **EL表达式、OGNL、JSP、Servlet**:这些都是用于构建动态Web应用的技术,用于处理请求、呈现视图以及与服务器进行交互。 - **jQuery、JavaScript、Ajax**:前端开发的重要工具,用于增强用户体验,实现页面动态...