将数组传递给 ios sdk 中的 .net webservice

Posted

技术标签:

【中文标题】将数组传递给 ios sdk 中的 .net webservice【英文标题】:Pass an array to .net webservice in ios sdk 【发布时间】:2013-05-15 10:12:24 【问题描述】:

我喜欢通过我的 iphone 应用调用 json 网络服务。

我尝试如下传递数组:

NSArray *keys = [NSArray arrayWithObjects:@"key",nil];
NSArray *objects = [NSArray arrayWithObjects:venueId,nil];
NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
NSString* jsonString = [jsonDictionary JSONRepresentation];


NSLog(@"%@",jsonString);

调用网络服务

SBJSON *json = [SBJSON new];
    json.humanReadable = YES;
    responseData = [[NSMutableData data] retain];
 NSString *service = @"/DerializeDataTable";
NSString *requestString = [NSString stringWithFormat:@"\"n\":\"%@\"",jsonString];

    NSLog(@"request string:%@",requestString);

请求的字符串

"n":""key":["4e78b7f7483bc8fe83ed2bf9","4de248a21520b8ceaabd9197","4f0d502be4b0dd89303e6bde","4f2a79a1e4b0b052a3f37633","500ebf52e4b0edbb8dbc7e9c","4d63a047a45b5481c872032d"]"

但无法得到响应。 不知道是什么原因。

我不知道我这边或服务器端有什么问题。

【问题讨论】:

【参考方案1】:

您尚未发布实际将请求发送到您的网络服务的代码,因此很难为您提供帮助。

您应该做的第一件事是确定问题出在您的客户端(应用程序)还是您的服务器上。您可以通过记录您在发送消息时获得的响应来做到这一点 - 听起来好像您没有收到任何响应,在这种情况下,您最好检查您的服务器日志以查看请求是否到达您的服务器。您可能会发现使用代理在离开您的应用时实际查看网络流量很有用。

【讨论】:

感谢您的回复!!我得到的响应如下: ExceptionType = "System.ArgumentException"; Message = "传入的对象无效,应为 ':' 或 ''。(9): \"n\":\"\"key\":[\"4e78b7f7483bc8fe83ed2bf9\",\"4de248a21520b8ceaabd9197\", \"4f0d502be4b0dd89303e6bde\",\"4fc4538de4b005f3f3dcb75f\",\"4d63a047a45b5481c872032d\"]\""; StackTrace = "在 System.Web.Script.Serialization.javascriptObjectDeserializer.DeserializeDictionary(Int32 深度)\nat System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(字符串输入,Int32 depthLimit,JavaScriptSerializer 序列化程序) 您在请求正文中传递的 JSON 字符串有错误。使用 jsonlint.com 验证 JSON n 是我的参数名称,key 是该参数的键。如果我尝试验证 json 字符串,那么它会通过验证【参考方案2】:

看起来你那里有额外的引号。我想你的意思是: 的 “n”: “键”:[ “4e78b7f7483bc8fe83ed2bf9”, “4de248a21520b8ceaabd9197”, “4f0d502be4b0dd89303e6bde”, “4f2a79a1e4b0b052a3f37633”, “500ebf52e4b0edbb8dbc7e9c”, “4d63a047a45b5481c872032d”] P>

【讨论】:

以上是关于将数组传递给 ios sdk 中的 .net webservice的主要内容,如果未能解决你的问题,请参考以下文章

通过 JSON 对象将 Session 对象中的字节数组传递给 Web 服务(Asp.Net 2.0 asmx)

将 C# ASP.NET 数组传递给 Javascript 数组

将 C# ASP.NET 数组传递给 Javascript 数组

vb.net中的C ++ DLL Wrapper传递字节数组的字节数组?

如何将值收集到数组中并将集合传递给 C# 中的 datagridview?

C,如何将多维数组传递给 CLR/类库项目中的函数