2
public class SimpleHTTPRequest {
    String envelope1="<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
    "<soap:Envelope xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:tns=\"urn:insertdata\"" +
    " targetNamespace=\"urn:insertdata\">"+
    "<soap:Body>"+
    "<insertdata>"+
    "<name xsi:type=\"xsd:string\">ghjghj</name>"+
    "<phone xsi:type=\"xsd:string\">1111</phone>"+
    "<email xsi:type=\"xsd:string\">ascom</email>"+
    "<score xsi:type=\"xsd:string\">12</score>"+
    "</insertdata>"+
    "</soap:Body>"+
    "</soap:Envelope>";
    /**
     * @param args
     */
    public static void main(String[] args) {
         String url="http://url/iphone_soap_server.php/insertdata";
          String soapAction="http://urkl/iphone_soap_server.php/insertdata/insertdata";
    HttpURLConnection connection = null;
    OutputStreamWriter wr = null;
    BufferedReader rd  = null;
    StringBuilder sb = null;
    String line = null;
    URL serverAddress = null;
    String data = "width=50&height=100";
    try {
        serverAddress = new URL("http://url/soap-server.php?wsdl");

        connection = null;

        //Set up the initial connection
        connection = (HttpURLConnection)serverAddress.openConnection();

        connection.setRequestMethod("POST");
        connection.setDoOutput(true);

        connection.setDoOutput(true);
        OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());


        writer.write(data);
        writer.flush();




        rd  = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        sb = new StringBuilder();

        while ((line = rd.readLine()) != null)
        {
            sb.append(line + '\n');
        }

        System.out.println(sb.toString());

    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (ProtocolException e1) {
        e1.printStackTrace();
    } catch (IOException e2) {
        e2.printStackTrace();
    }
    finally
    {
        //close the connection, set all objects to null
        connection.disconnect();
        rd = null;
        sb = null;
        wr = null;
        connection = null;
    }
}
}

我想从 Java 中使用肥皂网络服务,我可以在哪里将肥皂动作放在这段代码中......在此先感谢......

4

1 回答 1

3

当使用 SOAP over HTTP 时,通常 SOAP Action 被插入SOAPAction到请求的 HTTP 标头中。请参阅此处的标准:http: //www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383528

SOAPAction HTTP 请求标头字段可用于指示 SOAP HTTP 请求的意图。该值是标识意图的 URI。SOAP 对 URI 的格式或特殊性或者它是可解析的没有任何限制。HTTP 客户端在发出 SOAP HTTP 请求时必须使用这个头域。

所以你想要的是(假设soapAction设置为正确的值):

connection.setRequestProperty("SOAPAction", soapAction);
于 2012-04-25T09:27:24.430 回答