如何发出json post请求?

Posted

技术标签:

【中文标题】如何发出json post请求?【英文标题】:How to make json post request? 【发布时间】:2016-02-12 10:31:11 【问题描述】:

我必须使用以下请求参数发出 json post 请求,

   
    "method":"login", 
    "data":  
        "username":"korea", 
        "password":"123456" 
     
 

我使用以下代码发出请求,

NSString *jsonRequest = [NSString stringWithFormat:@"""\"\method:\"\login\"\"\,""\data:\"\"\"username\":\"%@\",\"password\":\"%@\"",username,password];
    NSLog(@"Request: %@", jsonRequest);

    NSURL *url = [NSURL URLWithString:@"http://myurl..."];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
    NSData *requestData = [NSData dataWithBytes:[jsonRequest UTF8String] length:[jsonRequest length]];

    [request setHTTPMethod:@"POST"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [request setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"];
    [request setHTTPBody: requestData];

    NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self];

我必须得到回应,但我无法得到回应

【问题讨论】:

你检查过这个***.com/a/15749527/5362916 参考***.com/questions/15516823/… 是的,我已经尝试了这些示例,但问题仍然存在 您的连接失败了吗?您收到什么错误? @StanlyMoses ***.com/questions/33767908/… 将此类用于普通方法 【参考方案1】:

试试这个

    NSDictionary *objectDic = @@"username" : username, @"password" : password;
    NSDictionary *dataDic = @@"data" : objectDic;
    NSDictionary *methodDic = @@"method" : @"login", @"data": dataDic;

    NSData *requestData = [NSJSONSerialization dataWithJSONObject:methodDic
                                               options:NSJSONWritingPrettyPrinted
                                                 error:nil];
    [request setHTTPBody: requestData];

【讨论】:

以上是关于如何发出json post请求?的主要内容,如果未能解决你的问题,请参考以下文章

向服务器发出 JSON POST 请求,接收二进制响应(Excel 文件),如何下载?

发出 JSON RPC API 的 GET 请求而不是 POST 请求

如何在 Slim 中访问 POST 请求的 JSON 请求正文?

如何使用 OKHTTP 发出 post 请求?

如何在 moya 中通过 POST 请求传递 JSON 正文

如何发出仅更新提供的字段的POST请求?