我根据VB.net程序(.net 3.5)请求第三方Web服务并编写C#代码(.net 4.0)。我几乎完全复制命令,但无论我将哪些域添加到我的cookie中,它都不起作用,并且当我将cookie添加到容器时总是给我错误。
Cookie的'Domain'='https://secure.uat.globallink.com/gtss/service/FileWebService'部分无效。
VB.net程序可以正常使用此代码并在生产中使用。我不知道为什么会这样。 .add方法在3.5和4.0之间是相同的,我尝试了这个BugFix_CookieDomain代码,它在互联网上漂浮着,没有任何帮助(我只有这一个cookie)。我还尝试添加一个没有运气的URI字段,并将域名更改为“https://secure.uat.globallink.com”,但没有任何效果。请帮助,我觉得我在这里有点疯狂。谢谢!
C#
GTSSWebService.FxWebService wsDL = new GTSSWebService.FxWebService();
wsDL.Credentials = new NetworkCredential(connectionCreds, Settings.mySettings.GTSSPassword);
wsDL.CookieContainer = new CookieContainer();
wsDL.Url = "https://secure.uat.globallink.com/gtss/service/FxWebService";
Cookie gtssConnCookie = new Cookie("SMCHALLENGE", "YES");
gtssConnCookie.Domain = "https://secure.uat.globallink.com/gtss/service/FileWebService";
wsDL.CookieContainer.Add(gtssConnCookie);
VB
Dim wsDL As New GTSSWebService.FxWebService
wsDL.Credentials = New System.Net.NetworkCredential(sCreds, Settings.DefaultSettings.PW)
wsDL.CookieContainer = New System.Net.CookieContainer
If Settings.DefaultSettings.ConnectLTS Then
wsDL.Url = "http://" & Settings.DefaultSettings.LTSIP & "/gtss/service/FxWebService"
Else
wsDL.Url = Settings.DefaultSettings.GTSSURL.Replace("/FileWebService", "/FxWebService")
Dim GTSSConnectionCookie As New Cookie("SMCHALLENGE", "YES")
GTSSConnectionCookie.Domain = Settings.DefaultSettings.GTSSURL
wsDL.CookieContainer.Add(GTSSConnectionCookie)
注意 - Settings.DefaultSettings.GTSSURL ==“https://secure.uat.globallink.com/gtss/service/FileWebService”
答案 0 :(得分:1)
对于没有https:// Dang的域名,C#想要“secure.uat.globallink.com”