我有 ac#“客户端”和一个 Java“服务器”。java 服务器有一个 wsdl 服务于客户端。到目前为止,它适用于 c# 向服务器发出请求以执行肥皂操作。我的服务器获取soap请求执行该方法并尝试将结果返回给客户端。
但是,当我将响应发送到 c# 时,我得到“服务器违反了协议。Section=ResponseStatusLine”。
我花了一整天的时间试图解决这个问题,但没有想出任何可行的方法。如果我解释我做了什么,这篇文章会很长,所以我会保持简短。
我用谷歌搜索了几个小时,一切都告诉我我的“回复线”是正确的。我尝试关闭 Skype,重新安排响应热线,添加东西,拿走东西等等。一切都无济于事。
这是一个课堂作业,所以不,我不能使用 apis 来帮助。我必须在服务器端手动完成所有操作。这意味着手动解析,手动创建soap响应和http响应。只是想在你说使用对我有用的东西之前你想知道这一点。
我什至尝试通过创建一个“模仿”c# 的 java 客户端来确保我的服务器发送正确的标头,这样我就可以看到服务器返回的内容。但是,它返回的正是我告诉它发送的内容。
我试着告诉我的 java 客户端做同样的事情,但对一个实际运行的 c# 服务,看看一个真正的服务返回什么,它返回基本相同的东西。为了安全起见,我复制了它的响应并尝试将其发送到 c# 客户端,但它仍然抛出错误。
任何人都可以帮忙吗?我已经尝试了所有我能想到的方法,包括将 useUnsafeHeaderParsing 添加到我的应用程序配置中。什么都没有工作。我发送的正是真正的服务发送的,它对我大喊大叫。我把我想要的东西寄给它,它会大喊大叫。
我发送这个:
"200 OK HTTP/1.0\r\n" +
"Content-Length: 201\r\n" +
"Cache-Control: private\r\n" +
"Content-Type: text/xml; charset=utf-8\r\n\r\n";