`

java socket 发送http请求webservice.

    博客分类:
  • JAVA
阅读更多
下面这几行代码花了我近二天的时候搞定的,还是有点小的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多线程调用webservice服务实现系统对接

    利用socket thread dom4j log4j axis2 soap PBE加解密等相关技术实现的socket协议调用webservice服务。 由于银行后台核心系统普遍采用的是UNIX下C/C++的开发平台,如果需要调Web Service往往需要借助一些第三方的库...

    http和WebService 调用接口Java代码demo

    综上所述,"http和WebService 调用接口Java代码demo"这个主题涵盖了Java通过HTTP进行接口调用的基本方法,以及Web Service的使用,特别是结合Spring Boot的场景。在实际项目中,理解并熟练运用这些技术能够帮助我们...

    多线程socket+webservice操作demo

    - 方法参数会被转换成SOAP消息,通过HTTP发送到服务端。 - 服务端处理请求并返回响应,再由代理类解析结果。 ```java MyWebService service = new MyWebService_Service().getMyWebServicePort(); String ...

    JAVA短信验证源码DEMO

    在这个DEMO中,`MessageSendClient.java`可能包含了建立Socket连接,向服务器发送短信请求,以及接收服务器响应的逻辑。TCP确保数据的可靠传输,而Socket则为应用程序提供网络通信的桥梁。 2. **Socket编程**:在...

    springmvc整合webservice加整合socket

    4. **Webservice客户端**:使用Spring的WebServiceTemplate或Apache CXF库,配置客户端代理,发送SOAP请求并处理响应。 5. **Webservice服务端**:创建Webservice服务,可以使用JAX-WS或JAX-RS,结合Spring MVC实现...

    webservice.rar_Java编程_Java_

    【标题】"webservice.rar" 是一个压缩包文件,它主要关注的是Java编程领域,特别是与Web服务相关的技术。在Java编程中,Web服务是一种通过HTTP协议交换数据的方法,允许不同应用程序之间进行通信。Web服务通常基于...

    基于Webservice的数据访问.docx

    在 C/S 架构中,客户端向服务器发送请求,服务器处理请求并返回结果。Webservice 使得不同的应用程序能够通过网络进行通讯,实现了数据交换和共享。 创建 Webservice 创建 Webservice 需要遵循以下步骤: 1. 创建...

    Javaweb开发学习路线及Java三大框架分享?.pdf

    Struts 则是一个 MVC 框架,用于处理 HTTP 请求和视图呈现。 学习过程中,从配置文件入手,理解每个框架的工作机制和协作方式,逐渐深入高级用法和框架原理。同时,不断地进行项目实践,不断思考和总结,通过编写...

    java网络编程教程

    在Java中,`java.net.Socket`类代表一个客户端socket,通过它,程序可以向服务器发起连接请求;而`ServerSocket`类则用于服务器端,监听客户端的连接请求。使用Socket通信的基本步骤包括创建Socket对象、建立连接、...

    android socket面试文档

    import org.apache.http.impl.client.HttpClients; HttpClient httpClient = HttpClients.createDefault(); // 进行HTTP请求... ``` #### 五、使用WebService 在Android中可以通过多种方式调用WebService。 ...

    flex与JAVA三种交互方式的源代码与视频教程

    Flex内置了HTTPService组件,可以发送HTTP请求到Java Web服务。通过这种方式,Flex可以调用Java Servlets、JSP或RESTful服务。Java后端可以通过Servlet API或Spring MVC框架来处理这些请求。此外,Flex也可以使用...

    调用https格式的webservice jar包。

    5. **发送请求**:执行HTTP请求并获取响应。 6. **处理响应**:解析返回的数据,通常可能是XML或JSON格式,然后转换成对应的Java对象。 7. **关闭连接**:完成操作后,记得关闭连接,释放资源。 在开发过程中,...

    java知识总结.doc

    JSP用于创建动态网页,将HTML与Java代码结合,而Servlet是服务器端的Java小程序,负责处理HTTP请求。 7. Servlet:Servlet是Java EE(现在称为Jakarta EE)的一部分,它是服务器端的Java应用程序,用于接收和响应...

    webservice参考

    此Java程序实现了简单的HTTP服务器,可以处理来自客户端的请求并返回响应。 - **核心代码解析**: - `ServerSocket server = new ServerSocket(PORT);`:创建监听指定端口的服务器套接字。 - `Socket client = ...

    webservice案例

    在Java中,`java.net.Socket`和`java.net.ServerSocket`类用于建立TCP连接,实现数据的双向传输。 5. **`ws_itcast_1012_client`**: 这可能是Web服务的客户端程序。客户端通过调用服务端的接口来获取或发送数据。...

    java的各种技术.pdf

    3. **Java网络编程**:Java的Socket编程允许开发网络应用程序,支持TCP/IP和UDP通信,同时NIO(非阻塞I/O)提供高性能的网络编程模型。 4. **Java RMI(远程方法调用)**:RMI允许Java对象在不同的JVM之间进行远程...

    11_网络通信

    例如,在Android应用中,可以构造一个带有查询字符串的URL来发送请求,如`http://example.com/api?param1=value1&param2=value2`。 ### 1.2 使用POST方式请求提交 除了GET方法之外,还可以使用POST方式来提交数据...

    webservice学习笔记

    【Web服务(Webservice)详解】 Web服务是一种基于互联网的标准方式,允许应用程序之间进行交互,实现了数据和功能的共享。它使用XML(可扩展标记语言)作为数据交换格式,通过SOAP(简单对象访问协议)传输数据,...

    (完整word)Java软件开发工程师简历.doc

    - **EL表达式、OGNL、JSP、Servlet**:这些都是用于构建动态Web应用的技术,用于处理请求、呈现视图以及与服务器进行交互。 - **jQuery、JavaScript、Ajax**:前端开发的重要工具,用于增强用户体验,实现页面动态...

Global site tag (gtag.js) - Google Analytics