0

我是 JSON 新手,找不到任何关于如何模拟 JSON 有效负载请求的材料。

我的最终目标是能够构建一个objective-c iOS 应用程序来处理这些请求-响应。我知道 ASIHttprequest 框架和它所使用的请求-响应机制。

但是现在我有一个 webservice api,它需要各种 json 有效负载,并且还提供 json 格式的响应。这是一个例子:

示例网址:

https://mywebServiceURL/api/ApiKey/user/create

The ContentType header = “application/json”.

有效负载:PUT 有效负载是一个 JSON 字典,包含以下键值对:

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 等的真正工作原理之前,我想处理各种请求、提供值并带上 api 一段时间。

2 - 将这些东西整合到 iOS 中的最佳方式是什么?我的项目中已经包含用于 Web 请求的 ASIHttp 和用于 JSON 处理的 JSONKit。

我做过这种事情,但使用 xml 响应,获取请求。JSON 我是第一次工作。只需指向此类示例内容的指针就会有很大帮助。

4

2 回答 2

1
  1. 有几个 Chrome 扩展程序,例如高级 REST 客户端或 REST 控制台,您可以使用它们来模拟 REST 调用。这些非常快速且易于安装到您的浏览器中,并允许您构建请求并查看响应。

  2. 我推荐使用开源 iOS 网络库AFNetworking。该库内置了对 REST 调用和 JSON 解析的支持。它非常容易启动和运行,如果您需要更高级的功能,它非常强大。

希望这可以帮助。

于 2013-02-06T10:15:51.630 回答
1

请补充安迪的建议,因为我在最近的一个应用程序中使用了类似的东西。

  1. 使用 Chrome 扩展海报来测试 REST 调用。
  2. 使用 ASIHttpRequest 处理异步查询。

示例代码片段

    //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];
于 2013-02-06T10:35:55.467 回答