这是我必须发布的 json 字符串...
{
"data": {
"description": "",
"current_value": "",
"serialno": "",
"condition": "",
"category": "category",
"purchase_value": "",
"new_or_used": "",
"gift_or_purchase": "",
"image": ""
},
"subtype": "fd3102d8-bc19-424b-bca2-774a8fd7ea6f"
}
如何以 JSON 格式发布?
这个 Q 我们肯定是重复的,但这里是完整的示例代码,作为一个长例程。只需复制和粘贴即可。
首先设置 JSON...
-(void)sendTestJsonCommand
{
NSMutableDictionary *dict = @{
@"heights""4_5_7",
@"score""4",
@"title""Some Title",
@"textBody""Some Long Text",
@"happy""y"
}.mutableCopy;
NSError *serr;
NSData *jsonData = [NSJSONSerialization
dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&serr];
if (serr)
{
NSLog(@"Error generating json data for send dictionary...");
NSLog(@"Error (%@), error: %@", dict, serr);
return;
}
NSLog(@"Successfully generated JSON for send dictionary");
NSLog(@"now sending this dictionary...\n%@\n\n\n", dict);
接下来,正确地将命令和 json 异步发送到您的服务器...
#define appService [NSURL \
URLWithString"http://www.corp.com/apps/function/user/pass/id/etc"]
// Create request object
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:appService];
// Set method, body & content-type
request.HTTPMethod = @"OST";
request.HTTPBody = jsonData;
[request setValue"application/json" forHTTPHeaderField"Content-Type"];
[request setValue"application/json" forHTTPHeaderField"Accept"];
[request setValue:
[NSString stringWithFormat:@"%lu",
(unsigned long)[jsonData length]] forHTTPHeaderField:@"Content-Length"];
// you would almost certainly use MBProgressHUD at this point
// to display some sort of spinner or similar action on the UX
最后,(A) 使用 NSURLConnection 正确连接,(B) 正确解释从服务器返回给您的信息。
[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *r, NSData *data, NSError *error)
{
if (!data)
{
NSLog(@"No data returned from server, error ocurred: %@", error);
NSString *userErrorText = [NSString stringWithFormat:
@"Error communicating with server: %@", error.localizedDescription]
return;
}
NSLog(@"got the NSData fine. here it is...\n%@\n", data);
NSLog(@"next step, deserialising");
NSError *deserr;
NSDictionary *responseDict = [NSJSONSerialization
JSONObjectWithData:data
options:kNilOptions
error:&deserr];
NSLog(@"so, here's the responseDict\n\n\n%@\n\n\n", responseDict);
// LOOK at that output on your console to learn how to parse it.
// to get individual values example blah = responseDict[@"fieldName"];
}];
}
希望它可以节省一些人的打字时间!
关于ios - 我如何将json字符串发布到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26094270/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |