iOS 呼叫Webservice介面

2021-07-13 05:14:25 字數 3530 閱讀 3565

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 ...