我是XML-RPC的新手,可能我的问题很愚蠢,但我找不到任何可以帮助我的信息...
所以这就是:我使用这个java代码通过使用HTTP的XML-RPC请求发送XML文件。
public static void sendXML(String file, String host, String port, String url) throws IOException{
Socket socket = new Socket(host, Integer.parseInt(port));
OutputStream out = socket.getOutputStream();
InputStream in = socket.getInputStream();
StringBuffer header = new StringBuffer();
header.append("POST "+url+" HTTP/1.0\n");
header.append("Content-Type: text/xml\n");
header.append("Content-Length: "+(new File(file).length()+2)+"\n");
header.append("\n");
byte[] buffer = header.toString().getBytes("UTF-8");
out.write(buffer);
InputStream src = new FileInputStream(file);
buffer = new byte[1024];
int b = 0;
while((b = src.read(buffer)) >= 0){
out.write(buffer, 0, b);
}
buffer = "\n\n".getBytes("UTF-8");
out.write(buffer);
out.close();
src.close();
in.close();
out.flush();
socket.close();
}
在此代码中,已经创建了XML文件,其中包含调用的方法和所有参数。 这个解决方案工作正常,但我要求它兼容HTTPS协议。
我是否只需更改行
header.append("POST "+url+" HTTP/1.0\n");
在
header.append("POST "+url+" HTTPS/1.0\n");
或者我应该使用Apache库https://ws.apache.org/xmlrpc/client.html?
或者可能是java语言中有任何更简单的解决方案吗?
谢谢大家的帮助