[英]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.