簡體   English   中英

使用NSURLSession的iOS POST請求

[英]iOS POST request using NSURLSession

我正在嘗試在iOS中發送一個簡單的POST請求,以測試我編寫的服務器。 我的代碼如下:

    NSURL *url = [NSURL URLWithString:@"http://localhost:8888/createUser"];
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
    NSString *bodyData = @"username=johndoe";
    request.HTTPMethod = @"POST";
    request.HTTPBody = [bodyData dataUsingEncoding:NSUTF8StringEncoding];
    request.timeoutInterval = 5;
    [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        NSLog(@"resp: %@, err: %@", response, error);
    }];

我一直在嘗試調試它,非常困惑。 completeHandler內部的代碼永遠不會運行,請求永遠不會超時,服務器也永遠不會看到任何東西。 似乎什么都沒有發生。 我能夠使用舊的NSURLConnection發出請求,但由於已棄用,因此希望避免這種情況。 這里有什么問題?

除了設置要執行POST的代碼(如josemando在其評論中指出的那樣)之外,您還沒有開始執行任務。

您需要像這樣更改最后一行:

NSURLSessionDataTask *task = [[NSURLSession sharedSession] 
  dataTaskWithRequest: request 
  completionHandler: ^(NSData *data, NSURLResponse *response, NSError *error)    
  {
    NSLog(@"resp: %@, err: %@", response, error);
  }];
[task resume];

(dataTaskWithRequest創建並返回一個數據任務對象,然后您必須提交該數據對象,以便使用resume方法執行該任務。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM