Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用iPhone应用程序向网站传递数据的最佳方式是什么?_Iphone_Objective C - Fatal编程技术网

使用iPhone应用程序向网站传递数据的最佳方式是什么?

使用iPhone应用程序向网站传递数据的最佳方式是什么?,iphone,objective-c,Iphone,Objective C,我正在构建我的第一个iPhone应用程序(xCode,objective-c),它必须使用web服务或WCF服务与现有网站进行通信。我主要研究了使用托管在网站中的WCF服务,该服务可以发送和接收JSON(使其轻量级,而不是SOAP的开销)。然而,我发现在不使用各种第三方包装(如JSON框架和ASIHTTPRequest)的情况下,在iPhone端工作越来越困难 有没有人能告诉我,我是否朝着正确的方向前进,是否使用了正确的工具,因为对于我认为相对简单的事情来说,这似乎非常复杂。也许是因为我已经习惯

我正在构建我的第一个iPhone应用程序(xCode,objective-c),它必须使用web服务或WCF服务与现有网站进行通信。我主要研究了使用托管在网站中的WCF服务,该服务可以发送和接收JSON(使其轻量级,而不是SOAP的开销)。然而,我发现在不使用各种第三方包装(如JSON框架和ASIHTTPRequest)的情况下,在iPhone端工作越来越困难

有没有人能告诉我,我是否朝着正确的方向前进,是否使用了正确的工具,因为对于我认为相对简单的事情来说,这似乎非常复杂。也许是因为我已经习惯了.NETC,在这里很多东西都是现成的

ie,如果我要将下面的JSON片段从下面的示例中发送回我的服务

{
“名字”:“约翰”,
“姓氏”:“史密斯”,
“年龄”:25岁,
“地址:{
“街道地址”:“第二街21号”,
“城市”:“纽约”
“州”:“纽约”,
“postalCode”:“10021”
},
“电话号码”:[
{“type”:“home”,“number”:“212 555-1234”},
{“类型”:“传真”,“号码”:“646555-4567”}
]

}我会使用直接HTTP协议。没有JSON或SOAP

有很多类可以像HTTP一样处理

如果你坚持使用JSON,你可以使用一些C/C++

如果您一直使用SOAP,那么可以使用Apache的AXIS或其他一些C/C++SOAP客户端库


同样,正如我提到的,最简单的方法是只使用HTTP

我会使用直接的HTTP协议。没有JSON或SOAP

有很多类可以像HTTP一样处理

如果你坚持使用JSON,你可以使用一些C/C++

如果您一直使用SOAP,那么可以使用Apache的AXIS或其他一些C/C++SOAP客户端库


同样,正如我所提到的,最简单的方法是只使用HTTP

我会使用JSON来格式化数据-JSON的编码和解码非常简单。此外,如果要发送的数据变得更复杂,JSON将进行缩放以匹配它。如果没有某种协议,通过HTTP发送原始数据会让应用程序变得更加复杂,这会让人感到困惑。我会避开肥皂——每当我尝试使用它时,它都是巨大而混乱的

至于ASI,就我个人而言,我喜欢使用它——建立一个基本的连接非常简单,但如果你需要它,它可以做一些强大的事情——看看它们的功能

以下是ASI和JSON从www.example.com获取数据并将其解析到NSDictionary的示例:

- (void)startConnection {
    NSURL *url = [NSURL URLWithString:@"http://www.example.com"];
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    [request setDelegate:self];
    [request startAsynchronous];
}

- (void)requestFinished:(ASIHTTPRequest *)request
    NSString *rawdata = [request responseString];
    NSDictionary* lotsOfData = [rawdata JSONValue];

    ... Do stuff with your JSON here ...
}

我会使用JSON来格式化数据——JSON的编码和解码非常简单。此外,如果要发送的数据变得更复杂,JSON将进行缩放以匹配它。如果没有某种协议,通过HTTP发送原始数据会让应用程序变得更加复杂,这会让人感到困惑。我会避开肥皂——每当我尝试使用它时,它都是巨大而混乱的

至于ASI,就我个人而言,我喜欢使用它——建立一个基本的连接非常简单,但如果你需要它,它可以做一些强大的事情——看看它们的功能

以下是ASI和JSON从www.example.com获取数据并将其解析到NSDictionary的示例:

- (void)startConnection {
    NSURL *url = [NSURL URLWithString:@"http://www.example.com"];
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    [request setDelegate:self];
    [request startAsynchronous];
}

- (void)requestFinished:(ASIHTTPRequest *)request
    NSString *rawdata = [request responseString];
    NSDictionary* lotsOfData = [rawdata JSONValue];

    ... Do stuff with your JSON here ...
}

嗯,数据必须以某种形式传递。如果您将自己限制为普通的多部分/表单数据和HTTP POST,那么您只能向服务器传递这么多。对不起。我不明白。什么不能通过简单的HTTP-POST传递,而可以通过JSON传递?毕竟,JSON和SOAP使用HTTP作为传输…@Pablo JSON可以表示复杂的对象。我假设您所说的HTTP是指一个简单的键和值列表。如果可能的话,JSON是我理想的选择,因为我可以在.net端轻松地对其进行序列化/反序列化,而且非常轻量级。@Cragly我会选择第三方JSON库。使用能够赋予你权力的工具并不羞耻。数据必须以某种形式传递。如果您将自己限制为普通的多部分/表单数据和HTTP POST,那么您只能向服务器传递这么多。对不起。我不明白。什么不能通过简单的HTTP-POST传递,而可以通过JSON传递?毕竟,JSON和SOAP使用HTTP作为传输…@Pablo JSON可以表示复杂的对象。我假设您所说的HTTP是指一个简单的键和值列表。如果可能的话,JSON是我理想的选择,因为我可以在.net端轻松地对其进行序列化/反序列化,而且非常轻量级。@Cragly我会选择第三方JSON库。使用能够增强您的能力的工具并不是什么丢脸的事,.Net主要是一个数据库访问框架,所以它有很多内置的与DBs通信的方法也就不足为奇了。这样做是它存在的理由。您应该记住,您正在从一个专用工具转向一个通用操作系统。@TechZen我们这里说的是同一个.NET吗?:)Net主要是一个数据库访问框架,所以它有很多内置的与DBs通信的方法也就不足为奇了。这样做是它存在的理由。您应该记住,您正在从一个专用工具转向一个通用操作系统。@TechZen我们这里说的是同一个.NET吗?:)很好,这正是我要找的东西。用另一种方式发送数据怎么样?我已经使用这个示例成功地获取了数据。我如何将JSON传递回我的服务?所以,如果我把你提到的例子中使用的JSON(经过编辑的问题)传回给你,这正是我想要的。用另一种方式发送数据怎么样?我已经使用这个示例成功地获取了数据。我如何将JSON传递回我的服务?因此,如果我传回您提到的示例中使用的JSON(已编辑的问题)。