我有一个网络服务,必须返回玩家详细信息作为回应。问题是,当我在SoapUI中发送相同的请求时,我得到了有效的响应,但是当我通过Java执行此操作时,我会在
中收到此消息 <faultstring> Unsupported content type: text/plain; charset=ISO-8859-1 </faultstring>
。
任何想法为什么会出现问题?
这是我发送的请求:
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:gen=" ">
> <soapenv:Header/>
> <soapenv:Body>
> <gen:GetPlayerDetails>
> <request>
> <systemUID>C_GS01</systemUID>
> <sessionID>TVM0MgAAB9IAAAFEjXyfxbvZ2oU_</sessionID>
> </request>
> </gen:GetPlayerDetails>
> </soapenv:Body>
> </soapenv:Envelope>
已解决感谢@helderdarocha 在我的HTTP客户端类中进行了一些更改(最后一行):
HttpClient httpclient = HttpClientBuilder.create().build();
StringEntity strEntity = new StringEntity(request);
HttpPost post = new HttpPost("http://10.47.44.163:8080" + endPointURI);
post.addHeader("Content-type", "text/xml");
答案 0 :(得分:5)
您可能在没有相应标头的情况下发送请求。您必须使用Accept
标头声明客户端接受的数据类型作为响应:
Accept: application/xml; application/json;
此外,如果您要发送数据,则必须声明所发送内容的内容类型,并且该内容类型应与您的服务所接受的数据兼容。
Content-type: application/xml
例如,如果您要以XML格式发送有效内容。