POST方法不支持Java HttpClient媒体错误

POST方法不支持Java HttpClient媒体错误,http,httpclient,Http,Httpclient,我正在尝试使用httpclient,但我得到的媒体不支持错误。 我想设置头,然后得到响应,该响应将返回头,这些头是用于身份验证的令牌 错误:方法失败:HTTP/1.1 415不支持的媒体类型 程序如下: public void getDocument(String url) { PostMethod method = new PostMethod(url); client.getParams().setAuthenticationPreemptive(true); me

我正在尝试使用httpclient,但我得到的媒体不支持错误。 我想设置头,然后得到响应,该响应将返回头,这些头是用于身份验证的令牌 错误:方法失败:HTTP/1.1 415不支持的媒体类型

程序如下:

public void getDocument(String url) {
    PostMethod method = new PostMethod(url);
    client.getParams().setAuthenticationPreemptive(true);

    method.setRequestHeader("User-Agent", "some header value");

    method.addRequestHeader("Header name", "some header value");
    method.addRequestHeader("Content-type", "application/xml; charset=utf-8");
    method.addRequestHeader("Content-Body", "some header value");

    method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
            new DefaultHttpMethodRetryHandler(3, false));

    Credentials defaultcreds = new UsernamePasswordCredentials("username", "password");
    client.getState().setCredentials(AuthScope.ANY, defaultcreds);

try {
        int statusCode = client.executeMethod(method);
        if (statusCode != HttpStatus.SC_OK) {
        System.err.println("Method failed: " + method.getStatusLine());
        }

catch(Exception e) {
        System.out.println("Error in getDocument() "+e);
}

在没有空白的情况下尝试:

method.addRequestHeader("Content-Type", "application/xml;charset=UTF-8");

我不确定内容类型是否不区分大小写。不过,这行代码对我很有用。

我还尝试了method.addRequestHeaderAccept,application/xml;字符集=utf-8;不是method.addRequestHeaderContent-type,而是application/xml;字符集=utf-8;但是仍然会出现相同的错误。如果不发送XML,为什么要将内容类型发送到XML?欢迎这样做,最好对解决方案进行详细说明……application/x-www-form-urlencoded上没有charset参数
postMethod = new PostMethod(URL);
postMethod.addRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");