在Java中将xml作为URL请求的一部分发送

时间:2014-05-06 22:53:51

标签: java xml xmlhttprequest http-post usps

这可能是一个微不足道的问题,但我尝试向USPS发送网页请求,以根据我发送的跟踪号码获取包含跟踪信息的http帖子回复(或根据我的请求发送电子邮件回复)文档说xml需要作为URL的一部分附加,如下面的

http://secure.shippingapis.com/ShippingAPITest.dll?API=TrackV2&XML=<PTSEmailRequest USERID="xxxxx"><TrackId>xxxxx</TrackId><RequestType>EN</RequestType></PTSEmailRequest>

我看到有两种方法可以发出xml请求,一种使用HttpPost,另一种使用URLConnection。我对此有何不满,并且我没有理解在url中添加xml与普通http请求之间的区别。有人可以帮我清理一下吗?

用于跟踪的USPS文档=&gt; https://www.usps.com/business/web-tools-apis/track-and-confirm.pdf

我阅读了这些相关的Stackoverflow帖子 Java: How to send a XML request?
posting XML request in java

HttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost("http://secure.shippingapis.com/ShippingAPITest.dll");

List<String> params = new ArrayList<String>(2);
params.add(new BasicNameValuePair("API", "TrackV2"));
params.add(new BasicNameValuePair("XML", FuncTOGenerateXML()));
httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));

HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();

if (entity != null) {
    InputStream instream = entity.getContent();
    //.....
    // .....
    instream.close();
}

1 个答案:

答案 0 :(得分:2)

HTTP请求可以使用多种方法之一,如POST,GET,DELETE,PUT ......这里我们谈谈POST和GET

技术差异

  • 使用GET,可以从URL中的参数中检索数据。

  • 使用POST,可以从HTTP消息中传输的数据中检索数据。

预期用途差异

  • GET旨在用于请求不会导致更改(例如,在Google中搜索)。由于您可以在没有副作用的情况下重复请求,因此数据位于URL中,可以存储在浏览器历史记录,收藏夹等中。

  • POST旨在用于执行更改(例如发送电子邮件,进行在线购买)。相关数据不会与URL一起存储(如果你回到使用POST获得的页面,浏览器会多次显示弹出窗口,要求获得再次发送数据的权限。

在实际使用中,区别不是那么明确,特别是当数据太大(URL长度有限)时有时会使用POST。此外,有时GET与POST的含义一起使用,因此数据可以显示为HTML链接。

最后,URLConnection是打开连接的基本API(您可以将其用作POST或GET请求,基于传递数据的方式或其他内容),HttpPost只是用于创建POST请求的更高级API。如果您采用基本方式,请更好地使用HttpURLConnection