Java 发送HTTP POST请求

Java 发送HTTP POST请求,java,xml,siri-xml,Java,Xml,Siri Xml,我正试图发送请求以获取公共交通信息。下面是一个示例的屏幕截图,说明我必须向站点发送一个XML请求,定义方法和服务引用(在示例中是StopMonitoringRequest和020035811) 到目前为止,我已成功连接到该服务,但我不知道从这里该做什么。到目前为止我已经做到了 String user = ""; String pass = ""; String url = "http://nextbus.mxdata.co.uk/nextbuse

我正试图发送请求以获取公共交通信息。下面是一个示例的屏幕截图,说明我必须向站点发送一个XML请求,定义方法和服务引用(在示例中是StopMonitoringRequest和020035811)

到目前为止,我已成功连接到该服务,但我不知道从这里该做什么。到目前为止我已经做到了

String user = "";
String pass = "";                        
String url = "http://nextbus.mxdata.co.uk/nextbuses/1.0/1";

String authString = user + ":" + pass;
byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
String authStringEnc = new String(authEncBytes);

HttpURLConnection  connection = (HttpURLConnection) new URL(url).openConnection();
connection.setRequestProperty("Authorization", "Basic " + authStringEnc);
connection.setRequestMethod("POST");
connection.setRequestProperty( "Content-Type", "application/x-www-form-urlencoded"); 
connection.setRequestProperty( "charset", "utf-8");
connection.setUseCaches(false);
connection.setDoOutput(true);

InputStream is = connection.getInputStream();
InputStreamReader isr = new InputStreamReader(is);

int numCharsRead;
char[] charArray = new char[1024];
StringBuffer sb = new StringBuffer();
while ((numCharsRead = isr.read(charArray)) > 0) {
    sb.append(charArray, 0, numCharsRead);
}

String result = sb.toString();
System.out.print(result);
……收到这封信:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Siri version="1.0" xmlns="http://www.siri.org.uk/">
<ServiceDelivery>
<ResponseTimestamp>2015-11-08T20:33:03.574Z</ResponseTimestamp>
</ServiceDelivery>
</Siri>

2015-11-08T20:33:03.574Z

如何输入所需的参数和方法

所以我要做的是创建一个HttpPost,并将xml请求设置为一个实体,将其绑定到post。下面是代码,以防任何人希望使用XML通过HTTP POST请求信息,并将XML作为字符串输出:

//基本自动授权安全
字符串url=”http://nextbus.mxdata.co.uk/nextbuses/1.0/1";
字符串authString=“:”;
byte[]authEncBytes=Base64.encodeBase64(authString.getBytes());
字符串authStringEnc=新字符串(authEncBytes);
DefaultHttpClient=新的DefaultHttpClient();
HttpPost=新的HttpPost(url);
post.setHeader(“授权”、“基本”+authringenc);
StringEntity输入=新StringEntity(请求);
setContentType(“text/xml”);
post.setEntity(输入);
HttpResponse response=client.execute(post);
HttpEntity=response.getEntity();
字符串unformatedxml=EntityUtils.toString(实体);