Send xml as part of URL request in Java
这可能是一个琐碎的问题,但是我正尝试将Web请求发送给USPS,以获取包含基于我发送的跟踪号的跟踪信息的http发布响应(或电子邮件响应,具体取决于我的请求)。文档说xml需要像下面的
一样作为url的一部分附加
1 | http://secure.shippingapis.com/ShippingAPITest.dll?API=TrackV2&XML=<PTSEmailRequest USERID="xxxxx"><TrackId>xxxxx</TrackId><RequestType>EN</RequestType></PTSEmailRequest> |
我看到有两种方法可以发出xml请求,一种使用
用于跟踪的USPS文档=>
https://www.usps.com/business/web-tools-apis/track-and-confirm.pdf
我阅读了这些与Stackoverflow相关的帖子
Java:如何发送XML请求?
在java
中发布XML请求
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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(); } |
HTTP请求可以使用几种方法之一,例如POST,GET,DELETE,PUT ...在这里,我们讨论POST和GET
技术差异
-
使用GET可以从URL中的参数中检索数据。
-
使用POST时,将从HTTP消息内传输的数据中检索数据。
预期用途差异
-
GET适用于请求不引起更改(例如,在Google中搜索)的情况。由于您可以重复请求而没有副作用,因此数据位于URL中,并且可以存储在浏览器历史记录,收藏夹等中。
-
POST旨在在您进行更改(例如发送电子邮件,进行在线购买)时使用。相关数据没有存储在URL中(否则,如果您返回使用POST获得的页面,浏览器会多次显示一个弹出窗口,询问是否允许再次发送数据。
在实际使用中,区别不是很清楚,特别是当数据太大(URL的长度有限)时,有时会使用POST。另外,有时GET与POST的含义一起使用,因此可以将数据显示为HTML链接。
最后,