我想向肥皂网络服务发出帖子请求。
我这样做了:
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
来形成post请求
你能帮忙吗
HttpRequest
接口没有提供设置对应消息体的方法。BasicHttpRequest
也没有
您需要更深入地了解继承层次结构并使用HttpEntityEncrosingRequest
,它公开了setEntity(HttpEntity)
方法及其默认实现BasicHttpEntityEnClosingRequest
。
HttpEntity
或多或少代表超文本传输协议消息体
可以通过HTTP消息发送或接收的实体。
有许多支持的实现,例如。StringEntity
、ByteArrayEntity
、FileEntity
等。如果这些还不够好,您可以编写自己的。
或者,我建议您使用表示每个方法的各种HttpXyz
类,例如HttpPost
。这些类型已经在适当的时候附带了setEntity(HttpEntity)
方法(HttpPost
有一个,但是HttpGet
不需要,因为GET请求不需要主体)。
HttpClient
提供执行(…)
方法重载,可以接受HttpRequest
对象,其中URI应该是绝对的,其他地方也可以提供HttpHost
来解析路径。