Hessian服務器https接口請求

Hessian服務器的OC部分代碼框架采用的是http接口和NSConnection來做數據請求,在2017年蘋果要求的https請求上,是無法做到數據請求的,只能走http;
但是需要實現https怎么辦呢,我想起以前的NSConnection做https就是加一個對證書里面的默認允許的方法,但是他總是不走這個方法去實現,我在框架包里面找到了這個文件:
CWDistantHessianObject+Private文件
的這個方法:-(NSData)sendRequestWithPostData:(NSData)postData;

這個方法,是該框架http請求數據的核心方法,但是里面的實現是使用的NSConnection的,我想要添加那個方法,不能被調用

所以我寫了一個DJConnection繼承自NSConnection的,來實現,但是依然不行

怎么辦呢!

我找到了NSURLConnectionDataDelegate,對他做了繼承并封裝了他的
didReceiveAuthenticationChallenge
canAuthenticateAgainstProtectionSpace
didReceiveData
connectionDidFinishLoading

這4個方法,讓CWDistantHessianObject+Private文件
的這個方法:-(NSData)sendRequestWithPostData:(NSData)postData;

里面的DJConnectionDelegate *obj = [[DJConnectionDelegate alloc]init];

    [[NSURLConnection alloc] initWithRequest:request delegate:obj];

使用我的delegate就可以了

當然了,在這里獲取參數成功時,心情很激動,昨天晚上的班沒有白加,但是這是在斷點打著的情況下,我做到了通過https把數據獲取成功,但是還是遇到了一個崩潰

我打了全局斷點還是沒有任何提示 只是在打印中出現了:
-[OS_dispatch_data release]: message sent to deallocated instance 0x6080000b8ba0
Message from debugger: Terminated due to signal 9
是紅色的 EXC_BAD_ACCESS問題
查資料發現,叫做使用了已經被提前釋放的對象的方法
我找了下我自己寫的代碼,發現那個data我是在最后才做的釋放,不可能提前釋放了,而我屬于長期使用ARC的新人開發者,并沒有怎么使用過MRC,用熟話說叫做:用MRC就是作,NO作NO DIE,但是我不信,我就是去改了這個東西了,我對比了原方法(做http部分代碼)發現他在做else if (returnResponse != nil) {
if ([returnResponse statusCode] == 200) {
[responseData retain];
}
的時候,對獲取到的responseData做了retain引用計數+1,而我的并沒有做這個事情,而且紅色崩潰也是在我做return responseData ? [responseData autorelease] : nil;之后,所以我把這句代碼加上去了

文章為本人原創,轉載請說明出處
文中不足之處,敬請斧正,也希望依然在使用Hessian來做服務器的iOS同行能多多交流,后續本人可能會對Hessian原框架部分代碼進行版本升級,使用NSSession來做數據請求。
****************************************Perfect*****************************************

查看資料:
附帶iOS內存調試講解:http://www.cnblogs.com/ljios/p/5088947.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • AFHTTPRequestOperationManager 網絡傳輸協議UDP、TCP、Http、Socket、X...
    Carden閱讀 4,384評論 0 12
  • 一、深復制和淺復制的區別? 1、淺復制:只是復制了指向對象的指針,即兩個指針指向同一塊內存單元!而不復制指向對象的...
    iOS_Alex閱讀 1,424評論 1 27
  • JSON JSON和XML都是需要解析的 JSON是一種輕量級的數據格式,一般用于數據交互服務器返回給客戶端的數據...
    JonesCxy閱讀 1,882評論 2 10
  • 標題:你愿意用多長時間等待 字數:710 Mutualism互利共生,共生雙方互相利用互相受益的共生方式 海葵和寄...
    f68a9e73bd3a閱讀 97評論 0 0
  • “啊~”王辰尖叫著醒來。 她剛剛做了一個夢,一個很真實的夢。她和朋友約好一起玩耍,剛走出家門。突然,一輛大卡車像是...
    果子小仙女兒閱讀 176評論 0 1