【问题标题】:NSURLRequest: PUT request with JSON bodyNSURLRequest:带有 JSON 正文的 PUT 请求
【发布时间】:2016-09-30 23:18:46
【问题描述】:

我正在 POSTMAN 和 Xcode 中尝试以下请求

结果:从 POSTMAN 请求获得 200 响应,从 Xcode 获得 1012

邮递员:请求

请求类型:PUT

网址:https://www.somesite.com/v1/favorites

标题:

内容类型:“应用程序/json” 授权:AUTH_TOKEN

{
"requestParameters": {
    "_id": 3598,
    "favorites": [{
        "_id": 1456,
        "contactName": "aaa",
        "contactUserName": "bbb"
    }]
}
}

== 目标-C ==

NSURL* url = [NSURL URLWithString:URL_STRING];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];

[request setHTTPMethod:@"PUT"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

NSString *jsonPostBody = [NSString stringWithFormat:@"{\"requestParameters\":{\"_id\":%@,\"favorites\": [{\"_id\": %@,\"contactName\": \"%@\",\"contactUserName\":\"%@\"}]}}",USERID_STRING,CONTACT_ID_STRING,CONTACT_NAME_STRING,CONTACT_USERNAME_STRING];

NSData *postData = [jsonPostBody dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
[request setHTTPBody:postData];
[request setValue:AUTH_TOKEN forHTTPHeaderField:@"Authorization"];

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:handler];

我尝试打印jsonPostBody 字符串并验证它是有效的JSON。任何人都可以通过指出我是否缺少任何明显的东西来提供帮助吗?

【问题讨论】:

    标签: objective-c nsurlrequest


    【解决方案1】:

    -1012 错误代码是 NSURLErrorUserCancelledAuthentication 。听起来服务器请求身份验证(通过 401 响应),但您没有 NSURLAuthenticationChallenge 的 NSURLConnection 委托处理程序。也许 auth 标头不太正确。

    【讨论】:

      【解决方案2】:

      自己找到了答案。显然 Content-Type 无效并替换它 [请求 setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];解决了这个问题。

      【讨论】:

        猜你喜欢
        • 2011-06-13
        • 2019-05-25
        • 1970-01-01
        • 1970-01-01
        • 2013-05-30
        • 2018-08-02
        • 1970-01-01
        • 2015-08-14
        • 2016-09-29
        相关资源
        最近更新 更多