如何讓 iOS UIWebView 連線時傳送自訂 Cookie 的方法[转]

利用 NSHTTPCookieStorage 管理 Cookie 傳送

在 iOS 中如果自行建立 UIWebView 來開啟遠端站台資料,這時可以透過以下方法加入 Cookie。原理是透過 iOS 提供的 NSHTTPCookieStorage 元件來控制所有從這個 Application 發出的 HTTP Request,如果在 UIWebView 有使用 iFrame 或者 AJAX 發出的 Request 同樣會受到影像,算是一個方便的功能,讓 Cookie 可以集中管理。

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

#import "AppDelegate.h"

 

@implementation AppDelegate

 

@synthesize window = _window;

 

- (void)dealloc

{

    [_window release];

    [super dealloc];

}

 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

 

    // 關閉 Statusbar

    [[UIApplication sharedApplication]setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];

 

    // 定義 cookie 要設定的 host

    NSURL *cookieHost = [NSURL URLWithString:@"http://blog.toright.com:80/"];

 

    // 設定 cookie

    NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:

                          [NSDictionary dictionaryWithObjectsAndKeys:

                           [cookieHost host], NSHTTPCookieDomain,

                           [cookieHost path], NSHTTPCookiePath,

                           @"COOKIE_NAME",  NSHTTPCookieName,

                           @"COOKIE_VALUE", NSHTTPCookieValue,

                           nil]];

 

    // 設定 cookie 到 storage 中

    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];

 

    // 建立 NSURLRequest 連到 cookie.php,連線的時候會自動加入上面設定的 Cookie

    NSString *urlAddress = @"http://blog.toright.com/cookie.php";

    NSURL *myurl = [NSURL URLWithString:urlAddress];  

    NSURLRequest *requestObj = [NSURLRequest requestWithURL:myurl];

 

    // 建立 UIWebView

    UIWebView *webView = [[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

 

    // 設定 UIWebView 讀取的位置

    [self.window addSubview:webView];

    [webView loadRequest:requestObj];

    [webView release];

    [self.window makeKeyAndVisible];

 

    return YES;

}

 

@end

 

用來驗證是否有傳送 Cookie 的程式,cookie.php 的程式碼如下,單純顯示收到的 Cookie:

 

 

1

2

3

4

<?php

// 顯示收到的 Cookie

print_r($_COOKIE);

?>

 

App 執行畫面如下:

參考資料

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 330987132 | Go:217696290 | Python:336880185 | 做人要厚道,转载请注明出处!http://www.cnblogs.com/sunshine-anycall/p/4135221.html

时间: 2024-11-08 19:24:09

如何讓 iOS UIWebView 連線時傳送自訂 Cookie 的方法[转]的相关文章

ios uiwebview加载jsp界面获取地理位置信息

问题描述 ios uiwebview加载jsp界面获取地理位置信息 我用uiwebview加载一个jsp页面,jsp页面中有通过geolocation请求地理位置,我在iOS手机上应该加什么才能让jsp页面能够获取到地理位置

iOS UIWebView实现禁止用户复制剪切功能_IOS

前言 在APP的混合模式开发,Android开发中有WebView作为混合模式开发的桥梁,当然在IOS中也同样有一个 UIWebView 组件来作为混合模式开发的桥梁,用过UIWebView组件的开发者都知道,当UIWebView加载显示HTML页面时,组件本身提供了一些系统默认的交互行为,这篇文章给大家分享的是iOS UIWebView实现禁止用户复制剪切功能,下面来一起看看. 示例代码 // 控制器实现此方法 - (BOOL)canPerformAction:(SEL)action with

ios UIWebView截获html并修改便签内容

需求:混合应用UIWebView打开html后,UIWebView有左右滚动条,要去掉左右滚动效果:  方法:通过js截获UIWebView中的html,然后修改html标签内容:  实例代码:  服务器端html Java代码   <html><head>   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">   <meta name=&

IOS平台的几个推送服务的对比

IOS平台的几个推送服务的对比   2013-10-09 13:37:01|  分类: 云计算 |举报 |字号 订阅        最近研究了一下极光推送(JPush),百度云推送和个推在IOS平台的推送机制,做了一下对比.        首先, 介绍苹果推送通知服务的推送机制(APNS: Apple Push Notification Service):                                                   图1  APNS的推送流程 上图清晰地展

ios那个本地通知属于推送吗?我把app放到后台就没有后台了

问题描述 **ios那个本地通知属于推送吗?我把app放到后台就没有后台了** 解决方案 需要实现本地notification,如果app只是后台,需要自己实现下localNotification demo有这个功能,可以参考.

iOS 7 正式版开始推送 附官方下载地址

iOS 7正式版今晨正式开放下载今天凌晨 1 点钟左右,iOS 7 正式版开始推送,不少人在朋友圈.微博上晒出了更新截图,由于下载人数太多,不少用户多次升级失败,折腾了三.四个小时才成功,不着急的朋友可以等白天晚些时候再下载,成功几率会高一些. 安装包大约 752MB,OTA 升级的话对于一些网速较慢的朋友还真是够呛,这里提供 2 个老方法,利用 iTunes 进行更新,虽然有点麻烦,但是更稳妥.苹果已经发布了 iTunes 11.1,需要先升级到这一版本才能使用.第一种方法是连上设备后,在版本

[IOS]UIWebView 请求网络页面或者加载本地资源页面

UIWebView是一个能够显示网页的IOS视图控件,我们可以用它来访问一个网站.下面是具体的实例: 操作步骤: 1.首先在xib文件中拖放一个UIWebView控件到view中 2.将下载的页面以及页面资源加载到项目中,但必须选择Create folder references for any added folders,然后知道文件在项目中是蓝色显示,而不是黄色显示 3.将webView的Delegate拖到File's Owner,继承UIWebView的Delegate协议,并且实现他的

IOS UIWebView获取404、504等错误问题解决方案_IOS

UIWebView获取404.504等错误码 问题描述     在使用webview时,会存在这么一个问题:     如果访问服务器返回异常,比如404.504这样的错误,需要在native端展示特定的图片和文案(404.504酱紫的错误码有些不美观).那么,问题就来了,怎样才能知道webview的访问出错了,是什么错??? 问题分析     从webview发起请求之后,能够查看webview加载状态的就是它的代理了,所以就从各个代理方法着手分析. // webview被指示加载内容时调用,返

iOS - UIWebView

前言 NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UIWebView : UIView <NSCoding, UIScrollViewDelegate> @available(iOS 2.0, *) public class UIWebView : UIView, NSCoding, UIScrollViewDelegate UIWebView 控件是做网络应用开发时使用的最多的一个控件,它实现了内置的浏览器(类似于 Saf