我是JSON新手,无法找到有关如何模拟JSON有效负载请求的任何资料。
我的最终目标是能够构建一个可以处理这些请求响应的objective-c iOS应用程序。我知道ASIHttprequest框架及其解决的请求 - 响应机制。
但是现在我有一个webservice api,它需要各种json有效负载,并且还提供json格式的响应。这是一个例子:
示例网址:
https://mywebServiceURL/api/ApiKey/user/create
The ContentType header = “application/json”.
Payload:PUT有效负载是一个JSON字典,包含以下keyvalue对:
email
screenName
User’s screen name.
password
passwordConfirm
phoneNumber (optional)
User’s phone number (optional)
picture A png file (64x64), encoded as a Base64 string (optional)
现在我的问题:
1 - 如何正常模拟(在ios之外,只是为了测试)?我搜索谷歌但找不到我需要的东西,我得到了curl.exe但它给了我与浏览器给出的相同,如方法不允许等等。但这不是我想要的唯一的东西。在我知道PUT,GET,POST等之前它是如何工作的之前,我想要玩各种请求,提供价值并花一点时间来搭便车。
2 - 将这些内容整合到iOS中的最佳方法是什么?我已经有ASIHttp用于Web请求,JSONKit用于我的项目中包含的JSON处理。
我已经做过这种事情,但是使用xml响应,获取请求。 JSON我是第一次工作。只是一个指向这样的例子的指针将是一个很大的帮助。
答案 0 :(得分:1)
您可以使用多种Chrome扩展程序(例如Advanced REST客户端或REST控制台)来模拟REST调用。这些可以非常快速,轻松地安装到您的浏览器中,并允许您构建请求并查看响应。
我建议使用开源iOS网络库AFNetworking。该库内置了对REST调用和JSON解析的支持。它非常容易启动和运行,如果您需要更高级的功能,它非常强大。
希望这有帮助。
答案 1 :(得分:1)
Jsut补充了Andy的建议,因为我在我最近的一个应用程序中使用过类似的东西。
示例代码段
//dictionaryData contains the login user details
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:dictionaryData options:kNilOptions error:nil];
NSString *jsonString = [[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]autorelease];
//Handling ASI requests
ASIHTTPRequest* request = [ASIHTTPRequest requestWithURL:uri];
[request addRequestHeader:@"Content-Type" value:@"application/json"];
[request addRequestHeader:@"Accept" value:@"application/json"];
[request appendPostData:[jsonData dataUsingEncoding:NSUTF8StringEncoding]];
[request setRequestMethod:@"POST"];
[ASIHTTPRequest setDefaultTimeOutSeconds:30];
request.delegate = self;
[request startAsynchronous];