0

iOS用の予約アプリを開発しています。データベースからデータを取得するために .net Web サービスを使用します。Android と Windows Phone のアプリで使用しましたが、ios ではまだ使用できませんでした。子オブジェクトのリストを持つ子を持つオブジェクトのリストを返します。

たとえば、FirmaGetir メソッドには、firID (文字列) という 1 つのパラメーターがあります。パラメータを Web サービスに渡すにはどうすればよいですか? これらのアイテムを解析するにはどうすればよいですか? サンプルコードが必要です。ご清聴ありがとうございました。

Web サービス要求:

POST /webservice1.asmx HTTP/1.1
Host: example.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <FirmaGetir xmlns="http://tempuri.org/">
      <firID>string</firID>
    </FirmaGetir>
  </soap12:Body>
</soap12:Envelope>

Web サービスの結果:

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <FirmaGetirResponse xmlns="http://tempuri.org/">
      <FirmaGetirResult>
        <Firma>
          <firma_adi>string</firma_adi>
          <adres>string</adres>
          <telefon>string</telefon>
          <id>string</id>
          <sektor>string</sektor>
          <alt_sektor>string</alt_sektor>
          <alt_sektor_adi>string</alt_sektor_adi>
          <servis>string</servis>
          <map>string</map>
          <slogan>string</slogan>
          <sayfaGosterimi>int</sayfaGosterimi>
          <gpsilce>string</gpsilce>
          <gpssemt>string</gpssemt>
          <gpspk>string</gpspk>
          <duyuru>
            <baslik>string</baslik>
            <icerik>string</icerik>
            <link>string</link>
            <image>string</image>
          </duyuru>
          <firma_link>
            <tam_adi>string</tam_adi>
            <kisa_adi>string</kisa_adi>
            <firma_link>string</firma_link>
          </firma_link>
        </Firma>
      </FirmaGetirResult>
    </FirmaGetirResponse>
  </soap12:Body>
</soap12:Envelope>
4

2 に答える 2

0

私はこの問題を約1週間解決しようとしていました。私はそれについてもう検索しません。Web サービスを使用する最良の方法は、JSON で WCF サービスを使用することです。私はそれについての素晴らしい例を見つけました。このチュートリアルに従ってくださいhttp://www.codeproject.com/Articles/405189/How-to-access-SQL-database-from-an-iPhone-app-Via

于 2013-02-15T15:58:20.783 に答える
0

touchXmlファイルを使用してプロジェクトにエクスポートする

要件に基づいて次のメソッドを変更します

    - (NSArray *) parseAllShopInfoResponse:(NSString *)AllShopInfoResponse
{


    NSMutableArray *allShopInfoDTOArray = [[NSMutableArray alloc]init];


    CXMLDocument *inventoryResponseObject = [[CXMLDocument alloc] initWithXMLString:AllShopInfoResponse options:0 error:nil];

    NSArray *resultNodes = [inventoryResponseObject nodesForXPath:@"//shopsListDTO" error:nil];

//    NSLog(@"ShopsList nodes: %@", resultNodes);

    for (CXMLElement *resultElement in resultNodes)
    {
        NSMutableDictionary *allShopInfo = [[NSMutableDictionary alloc] init];

        for(int counter = 0; counter < [resultElement childCount]; counter++)
        {

            if ([[resultElement childAtIndex:counter] stringValue] == nil) 
            {
                [allShopInfo setObject:@" " forKey:[[resultElement childAtIndex: counter] name]];
            }
            else
            {
                [allShopInfo setObject:[[resultElement childAtIndex:counter] stringValue] forKey:[[resultElement childAtIndex:counter] name]];
            }

//            NSLog(@"ShopsList DIC %@",allShopInfo);

        }
        [allShopInfoDTOArray addObject:[allShopInfo copy]];


    }


    return [self returnAllShopInfoObjects:allShopInfoDTOArray];

}


- (NSArray*) returnAllShopInfoObjects: (NSArray *)allShopInfoArray
{

    NSMutableArray *allShopInfoObjects=[[NSMutableArray alloc]init];

    for (NSDictionary *allShopInfoDictionary in allShopInfoArray) 
    {

//        NSLog(@"ALL Shop Info Dictionary .....%@",allShopInfoDictionary);

        allShopInfoObject = [[ShopBasicDetails alloc]init];

        allShopInfoObject.shopId = [[allShopInfoDictionary objectForKey:@"shopId"] intValue];
        allShopInfoObject.shopName = [allShopInfoDictionary objectForKey:@"shopName"];
        allShopInfoObject.onlineStatus = [[allShopInfoDictionary objectForKey:@"onlineStatus"]intValue];
        allShopInfoObject.shopDetailsDownloadTime = (NSDate *)[allShopInfoDictionary objectForKey:@"dateTime"];
        allShopInfoObject.shopLatitudeValue = [[allShopInfoDictionary objectForKey:@"latitude"]doubleValue];
        allShopInfoObject.shopLongitudeValue = [[allShopInfoDictionary objectForKey:@"longitude"]doubleValue];
        NSURL *thunmbnailImageUrl = [NSURL URLWithString: [allShopInfoDictionary objectForKey:@"logoThumbnailUrl"]];
        UIImage *thunmbnailImage = [UIImage imageWithData: [NSData dataWithContentsOfURL:thunmbnailImageUrl]];

        allShopInfoObject.thumbnailImage =  thunmbnailImage;
        CLLocation *shopLocation = [[CLLocation alloc] initWithLatitude:allShopInfoObject.shopLatitudeValue longitude:allShopInfoObject.shopLongitudeValue];

//        NSLog(@"Distance i meters: %f", [userCurrentPosition getDistanceFrom:shopLocation]);
        allShopInfoObject.distance = [userCurrentPosition getDistanceFrom:shopLocation]/1000;

        [allShopInfoObjects addObject:allShopInfoObject];



    }
//    NSLog(@"OBJECTS : %@",allShopInfoObjects);
    [outputDelegate ParserOutputDelegate:allShopInfoObjects];

    return allShopInfoObjects;
}
于 2013-02-13T14:39:30.180 に答える