栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

POST呼叫到另一台服务器

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

POST呼叫到另一台服务器

两种方式:

  1. 如果您当前的请求已经是POST,则只需发送307重定向即可。
        response.setStatus(307);    response.setHeader("Location", "http://other.com");

但是,这将在客户端发出安全确认警告。

  1. 自己代理。
        URLConnection connection = new URL("http://other.com").openConnection();    connection.setDoOutput(true); // POST    // Copy headers if necessary.    InputStream input1 = request.getInputStream();    OutputStream output1 = connection.getOutputStream();    // Copy request body from input1 to output1.    InputStream input2 = connection.getInputStream();    OutputStream output2 = response.getOutputStream();    // Copy response body from input2 to output2.

但是,这不会更改URL,客户端会认为他仍在您的网站上。

也可以看看:

  • 如何使用URLConnection触发和处理HTTP请求?

更新
:您实际上想从POST重定向到GET,包括所有请求参数。在这种情况下,只需收集POST参数,然后将它们作为查询字符串发送到默认(302)重定向中。

    String encoding = request.getCharacterEncoding();    if (encoding == null) {        encoding = "UTF-8";        request.setCharacterEncoding(encoding);    }    StringBuilder query = new StringBuilder();    for (Entry<String, String[]> entry : request.getParameterMap().entrySet()) {        for (String value : entry.getValue()) { if (query.length() > 0) query.append("&"); query.append(URLEnprer.enpre(entry.getKey(), encoding)); query.append("="); query.append(URLEnprer.enpre(value, encoding));        }    }    response.sendRedirect("http://example.com?" + query);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/466714.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号