【发布时间】:2010-08-12 18:27:08
【问题描述】:
我正在尝试使用 httpclient,但出现媒体不支持错误。 我想设置标头,然后返回响应,该响应应该返回标头,这些标头是用于身份验证的令牌 错误:方法失败:HTTP/1.1 415 Unsupported Media Type
程序如下:
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("Accept", "application/xml; charset=utf-8");而不是 method.addRequestHeader("Content-type", "application/xml; charset=utf-8");但仍然出现同样的错误。
-
如果不发送 XML,为什么要将内容类型发送到 XML?
标签: http httpclient