【问题标题】:Objective C code equal to $.post method in jquery目标 C 代码等于 jquery 中的 $.post 方法
【发布时间】:2014-03-07 12:16:05
【问题描述】:

嗨,我是 Objective C 的新手,我正在开发一个 iOS 应用程序,它将请求发送到 REST API 并获得身份验证以执行诸如获取 json/xml 响应之类的操作。

如果我们发送请求,它会给出一个会话令牌作为响应,让我在一段时间内保持身份验证。

下面的代码在浏览器中就像一个魅力,但我不知道如何在 Objective C 语言中重现我应该能够存储令牌以便让我保持身份验证。请任何人帮助我。在此先感谢。 :)

$.post( 
    url, {
        username:'xyz', 
        password:'123'
        })
    .done(function() {
        #success alert
    })
    .always(function( data ) { 
        #always alert
});

【问题讨论】:

    标签: ios objective-c http-post nsurl


    【解决方案1】:

    使用和NSURLRequest:

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    [request setHTTPMethod:@"POST"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    NSData* body = [@"{username:'xyz', password:'123'}" dataUsingEncoding:NSUTF8StringEncoding]
    [request setHTTPBody:body];
    [request setURL:url];
    
    NSError *error = [[NSError alloc] init];
    NSHTTPURLResponse *responseCode = nil;
    
    NSData *oResponseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&responseCode error:&error];
    
    NSString* responseJson = [[NSString alloc] initWithData:oResponseData encoding:NSUTF8StringEncoding];
    

    【讨论】:

    • 感谢@Jason 的回复,但是当我使用此代码时,它显示的是页面的内容。不是令牌。它的显示就像我们在浏览器中输入网址一样,作为响应,它给了我内容。
    • 如果我们直接在网站上提供网址,它会显示“未经授权的访问”,但是当我们通过 jquery post 方法发送它们时,它会给我返回令牌。在这种情况下,当我尝试上述代码时,它会显示“未经授权的访问”。
    • 您在发布表单数据吗?如果是这样,请摆脱 application/json 行。
    猜你喜欢
    • 1970-01-01
    • 2013-03-20
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    • 2012-04-05
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多