Java HttpClient 返回“501 方法未实现”和“POST 到/不支持”

发布于 2024-11-06 20:55:09 字数 450 浏览 1 评论 0原文

我正在使用 HttpClient 向网页提交表单,当我查看浏览器正在发送的 HTTP 标头时,它肯定会在那里发送 POST 请求。

但是,当我尝试对 HttpClient 执行相同操作时,它会返回主题中包含消息的错误页面。

HttpPost httpost = (HttpPost) prepareRequest(new HttpPost(targetURL));
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
HttpResponse response = httpClient.execute(httpost);
HttpEntity entity = response.getEntity();
content = EntityUtils.toString(entity);
EntityUtils.consume(entity);

I am using HttpClient to submit a form to a webpage and when I look at HTTP header which browser is sending it is definitely sending POST request there.

But when I try to do the same with HttpClient it returnes error page with the message in the subject.

HttpPost httpost = (HttpPost) prepareRequest(new HttpPost(targetURL));
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
HttpResponse response = httpClient.execute(httpost);
HttpEntity entity = response.getEntity();
content = EntityUtils.toString(entity);
EntityUtils.consume(entity);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晨曦慕雪 2024-11-13 20:55:09

501 还可能意味着您的内容类型对于某些网络服务器设置不正确。

如果您不想处理这个低级 API,这将是 Resty 中 x-www-form-urlencoded POST 所需的代码。

Resty r = new Resty();
String result = r.text(targetUrl, form(nvps)).toString();

免责声明:我是 Resty 的作者。

501 could also mean that your Content type is not set correctly for some web-servers.

If you don't want to deal with this low-level API, this would be the code needed in Resty for a x-www-form-urlencoded POST.

Resty r = new Resty();
String result = r.text(targetUrl, form(nvps)).toString();

Disclaimer: I'm the author of Resty.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文