免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5836 | 回复: 3
打印 上一主题 下一主题

跨服务器的post重定向问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-10-22 18:54 |只看该作者 |倒序浏览
10可用积分
http://bbs3.chinaunix.net/thread-1803754-1-1.html 上个帖子没说清,重新

客户端client是java提交的post请求, query和entity中有些数据, uri 例如 http://serverA/handle.php?key1=111&key2=222

serverA 是php的, serverB只能处理POST请求

client发送post到serverA, serverA修改query数据并重定向到serverB uri 例如 http://serverB/handle?key2=222, serverB返回结果数据给client

不知道重定向时如何把client post中的entity数据也发到serverB中

最好给个简单示例~~谢谢

论坛徽章:
0
2 [报告]
发表于 2010-10-22 19:27 |只看该作者
在serverA的时候伪装成client发送请求。{:3_189:}

论坛徽章:
0
3 [报告]
发表于 2010-10-23 11:49 |只看该作者
假设serverA是计算$_POST['a']和$_POST['b']和的,然后通过post传递一个变量c过去
serverB只能接收POST

完全可以

  1. <form method="post" action="serverB_url">
  2. <input value="<?php echo $_POST['a']+$_POST['b']; ?>" type="hidden" name="c" />
  3. </form>
  4. <script type="text/javascript">
  5. document.getElementsByTagName("form")[0].submit();
  6. </script>
复制代码
如果有安全性要求,可以用一个通用密匙,ServerA端数据加密下,ServerB解

论坛徽章:
0
4 [报告]
发表于 2010-10-23 14:38 |只看该作者
回复 3# 3227049


    如果client的post只带query参数的话header("Location: "http://serverA/handle.php?key3=333")就可以实现了

问题是ServerB是人家的不能动, 必须要接受一个entity的数据, 我不太理解entity怎么重定向过去

client 的entity是这样加的
   
    String myData = "xxxxx";
    post = new HttpPost(xx);
    post.setParameters(key, value);
    post.setEntity(myData);
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP