java – 使用org.apache.http发送带有SOAP操作的HTTP Post请求
发布时间:2020-12-15 00:06:59 所属栏目:Java 来源:网络整理
导读:我正在使用org.apache.http api编写一个使用SOAP操作的硬编码HTTP Post请求. 我的问题是没有找到一种方法来添加请求正文(在我的例子中是SOAP操作). 我会很高兴有一些指导. import java.net.URI;import org.apache.http.HttpResponse;import org.apache.http.
我正在使用org.apache.http api编写一个使用SOAP操作的硬编码HTTP Post请求.
我的问题是没有找到一种方法来添加请求正文(在我的例子中是SOAP操作). 我会很高兴有一些指导. import java.net.URI; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.client.RequestWrapper; import org.apache.http.protocol.HTTP; public class HTTPRequest { @SuppressWarnings("unused") public HTTPRequest() { try { HttpClient httpclient = new DefaultHttpClient(); String body="DataDataData"; String bodyLength=new Integer(body.length()).toString(); System.out.println(bodyLength); // StringEntity stringEntity=new StringEntity(body); URI uri=new URI("SOMEURL?Param1=1234&Param2=abcd"); HttpPost httpPost = new HttpPost(uri); httpPost.addHeader("Test","Test_Value"); // httpPost.setEntity(stringEntity); StringEntity entity = new StringEntity(body,"text/xml",HTTP.DEFAULT_CONTENT_CHARSET); httpPost.setEntity(entity); RequestWrapper requestWrapper=new RequestWrapper(httpPost); requestWrapper.setMethod("POST"); requestWrapper.setHeader("LuckyNumber","77"); requestWrapper.removeHeaders("Host"); requestWrapper.setHeader("Host","GOD_IS_A_DJ"); // requestWrapper.setHeader("Content-Length",bodyLength); HttpResponse response = httpclient.execute(requestWrapper); } catch (Exception e) { e.printStackTrace(); } } } 解决方法
soapAction必须作为http-header参数传递 – 当使用它时,它不是http-body / payload的一部分.
看看这里一个例子与apache httpclient:http://svn.apache.org/repos/asf/httpcomponents/oac.hc3x/trunk/src/examples/PostSOAP.java (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |