【问题标题】:Why my wcf service request headers always get为什么我的 wcf 服务请求标头总是得到
【发布时间】:2016-04-20 13:14:17
【问题描述】:

在 wcf 项目上工作,为什么我的服务请求标头总是变成 get ,即使我请求发布。

Bellow 是我的提琴手

我的发布请求

结果 302 响应

结果 405 响应

怎么办?为什么我的服务表现得很奇怪?

【问题讨论】:

  • 如果我错了,请纠正我,是否有可能由于发生重定向而生成 GET 请求并且请求被重定向到仅接受 POST 的 url?那么这可能是一种情况,因为重定向本质上是 GET。
  • @ SamGhatak,你是对的。重定向到只接受帖子的网址后。在这种情况下该怎么办。
  • 这很难从我们这里的数据指针中暗示出来。从提琴手你可以直接用 POST 方法点击第二个网址吗?
  • 没有重定向,如果我在提琴手中通过 post 请求直接调用我的服务,那么它工作得很好
  • 所以我猜它解决了?

标签: c# .net wcf web-config


【解决方案1】:

这是由于从第一个 url 重定向而发生的。重定向的请求本质上是 GET,这里重定向的目标是一个只接受 POST 的 url。在这种情况下,使用 POST 方法点击第二个 url(重定向目标)可以解决问题。

现在,正如您所说的重定向是强制性的,一种方法是使新 URL 允许 GET 并传递包含有用参数的加密令牌作为查询字符串参数。这样您就可以同时获得:1. 加密使第二个 url 安全,2. 您可以将参数传递给新 url 而不会在查询字符串中公开它们。

希望对你有帮助。

【讨论】:

  • 非常感谢您的回复,问题是它是一项旧服务,正如我已经告诉您的那样。更改现有服务中的任何代码都是可怕的,希望您理解。我们只是更改域而不是任何修改或扩展名。有没有办法做到这一点。
  • @shamim :我理解,但是为了获得用户请求旧 URL 的灵活性,其中一些数据被重定向到具有相同数据的新 URL,需要进行一些修改。我绝对同意在旧服务上开始一些新的实现确实有风险,但我不确定是否可以在没有任何重大变化的情况下完成。
猜你喜欢
  • 2020-07-05
  • 2017-12-08
  • 2015-05-16
  • 2012-02-25
  • 2014-05-16
  • 2021-07-03
  • 1970-01-01
  • 1970-01-01
  • 2012-12-01
相关资源
最近更新 更多