1.寫請求體(寫請求體的時候要注意soap的版本,有的是1.1,有的是1.2;可以去檢視pc上的請求體資料參照部落格中的寫法修改)
2.進行請求(將下面部落格中的**整理下複製貼上就好)
3.請求完成,解析xml,轉為字典型別,呼叫下面的方法
+ (nsdictionary *)dictionaryforxmlstring:(nsstring *)string options:(xmlreaderoptions)options error:(nserror **)errorpointer;
下面的**是xmlreader.h和.m檔案,將這個類封裝起來,在需要用的時候呼叫.h裡面的方法就行
//
// xmlreader.h
// test
//// created by 趙前 on 16/6/6.
//#import enum ;
typedef nsuinteger xmlreaderoptions;
@inte***ce xmlreader : nsobject+ (nsdictionary *)dictionaryforxmldata:(nsdata *)data error:(nserror **)errorpointer;
+ (nsdictionary *)dictionaryforxmlstring:(nsstring *)string error:(nserror **)errorpointer;
+ (nsdictionary *)dictionaryforxmldata:(nsdata *)data options:(xmlreaderoptions)options error:(nserror **)errorpointer;
+ (nsdictionary *)dictionaryforxmlstring:(nsstring *)string options:(xmlreaderoptions)options error:(nserror **)errorpointer;
@end
//
// xmlreader.m
// test
//// created by 趙前 on 16/6/6.
//#import "xmlreader.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "xmlreader requires arc support."
#endif
nsstring *const kxmlreadertextnodekey = @"text";
nsstring *const kxmlreaderattributeprefix = @"@";
@inte***ce xmlreader ()
@property (nonatomic, strong) nsmutablearray *dictionarystack;
@property (nonatomic, strong) nsmutablestring *textinprogress;
@property (nonatomic, strong) nserror *errorpointer;
@end
@implementation xmlreader
+ (nsdictionary *)dictionaryforxmldata:(nsdata *)data error:(nserror **)error
+ (nsdictionary *)dictionaryforxmlstring:(nsstring *)string error:(nserror **)error
+ (nsdictionary *)dictionaryforxmldata:(nsdata *)data options:(xmlreaderoptions)options error:(nserror **)error
+ (nsdictionary *)dictionaryforxmlstring:(nsstring *)string options:(xmlreaderoptions)options error:(nserror **)error
#pragma mark - parsing
- (id)initwitherror:(nserror **)error
return self;
}- (nsdictionary *)objectwithdata:(nsdata *)data options:(xmlreaderoptions)options
return nil;
}#pragma mark - nsxmlparserdelegate methods
- (void)parser:(nsxmlparser *)parser didstartelement:(nsstring *)elementname namespaceuri:(nsstring *)namespaceuri qualifiedname:(nsstring *)qname attributes:(nsdictionary *)attributedict
else
// add the new child dictionary to the array
[array addobject:childdict];
}else
// update the stack
[self.dictionarystack addobject:childdict];
}- (void)parser:(nsxmlparser *)parser didendelement:(nsstring *)elementname namespaceuri:(nsstring *)namespaceuri qualifiedname:(nsstring *)qname
// pop the current dict
[self.dictionarystack removelastobject];
}- (void)parser:(nsxmlparser *)parser foundcharacters:(nsstring *)string
- (void)parser:(nsxmlparser *)parser parseerroroccurred:(nserror *)parseerror
@end
希望大家有幫助
將xcode公升級到8.1之後會出現一些列印語句,並且可能在進行xml解析的時候列印不出資訊,並且有個delloc錯誤。只要在xmlreader.h前面新增如下**
#ifdef debug
#define nslog(format, ...) fprintf(stderr,"%s\n",[[nsstring stringwithformat:format, ##__va_args__] utf8string]);
#else
#define nslog(...)
#endif
在設定request的時候 有的會新增乙個soapaction欄位,有的沒有
ios 呼叫webservice整理
學iphone開發有一段時間了,對於我這個新手來說,學習過程中,遇到不少問題,尤其是webservice的呼叫一直困擾了很久,趕在光棍前夕之跡,談談個人在webservice方面遇到的問題以及解決方案 跟大家分享一下,對於那些高手來說可以略過 也不知道這是人生中的第幾個光棍節了,沒有妹子,很糾結,沒...
ios呼叫webservice整理
學iphone開發有一段時間了,對於我這個新手來說,學習過程中,遇到不少問題,尤其是webservice的呼叫一直困擾了很久,趕在光棍前夕之跡,談談個人在webservice方面遇到的問題以及解決方案 跟大家分享一下,對於那些高手來說可以略過 也不知道這是人生中的第幾個光棍節了,沒有妹子,很糾結,沒...
iOS 開發之 Web Service 呼叫
以下變更在 h 檔案中宣告 nsmutabledata webdata nsmutablestring soapreply nsurlconnection conn nsxmlparser xmlparser bool elementfound 以下在 m 中實現 validate user id ...