我想向肥皂网服务发帖子。
我这样做了:private static HttpClient client = HttpClientBuilder.create().build();
private static HttpHost host = new HttpHost("localhost", 8080);
HttpRequest requset = new BasicHttpRequest("POST",
"/iOSS bla bla bla");
requset.addHeader("Authorization", "Basic c21hcnQ2ODYzOnNtYXJ0Njg2Mw==");
requset.addHeader("Content-Type",
"multipart/related; type=\"text/xml\"; boundary=\"--=Part1=-- \"");
requset.addHeader("SOAPAction", "");
我无法知道如何添加请求的正文。我没有找到那个
的方法请注意,我使用HttpRequest
来形成Http请求,我没有使用HttpPost
来形成帖子请求
答案 0 :(得分:2)
HttpRequest
接口不提供设置相应邮件正文的方法。 BasicHttpRequest
您需要更深入地进入继承层次结构并使用HttpEntityEnclosingRequest
,它会公开setEntity(HttpEntity)
方法及其默认实现BasicHttpEntityEnclosingRequest
。
HttpEntity
或多或少代表http消息正文。 javadoc州
可以使用HTTP消息发送或接收的实体。
有许多支持的实现,例如。 StringEntity
,ByteArrayEntity
,FileEntity
等。如果这些内容不够好,您可以自行编写。
或者,我建议您使用代表每种方法的各种HttpXyz
类,例如。 HttpPost
。这些类型在适当时已经附带setEntity(HttpEntity)
方法(HttpPost
有一个,但HttpGet
没有,因为GET请求不需要正文)。< / p>
HttpClient
提供execute(...)
方法重载,可以接受HttpRequest
个对象,其中URI应该是绝对的,而其他方法也可以提供HttpHost
来解析路径。