我有这个 web 服务 (.asmx) 和这个 obj-c 代码(从 wsdl2code.com 生成)一切正常 - 可以连接和所有这些,但我需要在肥皂调用中设置一些额外的标头信息。
在 .net 中,如果我将“AllowCookies”标志 WCF-config 设置为 true,我只能使用该服务。
像这样:
var session = new WebServiceSoapClient();
((BasicHttpBinding)session.Endpoint.Binding).AllowCookies = true;
如果我只是直接使用该服务,它会抛出“用户未通过身份验证”异常。
现在,我在 iOS 平台上又遇到了这个问题,我不知道如何/在哪里添加信息。我找到了这篇文章,并认为我可以用它来做同样的伎俩,只需覆盖一个设置。没有成功。
有人有解决方案吗?或有关设置哪个标头的信息?
(我从第一次身份验证中得到了一个令牌,我想应该在这里使用它..)
更新:
我打开了与 asp.net webapp 和 webservice 的通信,并使用 Fiddler2 来调查标头。一开始我并不清楚,因为“Cookie”标头仅包含 asp.net 中的默认身份验证字符串:“ASP.NET_SessionId={xxxxxxxxxxxxx}”。但我只使用了实际值而不是整个字符串。我想这是缺乏基本的 HTTP 标头知识......我在以后的所有请求中将整个字符串附加到标头“Cookie”,它起作用了!