我在xamarin上制作iPhone应用程序。我遇到了一个非常令人困惑的问题。我正在对一个链接进行NSURLConnection以从头部获取cookie信息,并使用该cookie打开其他受保护的链接。在连接:didReceiveResponse:方法中,NSHttpURLResponse包含要检索的“Set-Cookie”字段。我在模拟器上运行应用程序时获取正确的标头信息。但是在设备上,相同的代码不会返回带有cookie的完整标头。这也阻止了我调用其他链接。如果我在objective-c中从本机示例应用程序运行联系相同的URL,我会得到正确的标题信息。它只是不在xamarin app的设备上工作。
创建连接的代码是
NSMutableUrlRequest request = new NSMutableUrlRequest(url);
request.HttpMethod = "GET";
request.ShouldHandleCookies = true;
request.Headers = header;
URLConnDelegate connectionDelegate = new URLConnDelegate (this);
NSUrlConnection connection = new NSUrlConnection (request, connectionDelegate, true);
接收回复的代码是
public override void ReceivedResponse (NSUrlConnection connection, NSUrlResponse response)
{
NSHttpUrlResponse httpResponse = response as NSHttpUrlResponse;
Console.WriteLine (httpResponse.AllHeaderFields);
NSString cookieStr = httpResponse.AllHeaderFields.ValueForKey (new NSString ("Set-Cookie")) as NSString;
caller.setCookie (cookieStr);
NSMutableUrlRequest request = new NSMutableUrlRequest (new NSUrl(caller.urlString));
caller.loadRequest (request);
}
当我从设备运行时,set-cookie字段不会出现。
非常感谢任何帮助。
由于