2016-09-29 5 views
0

Когда я использую AFNetworking для отправки параметров NSMutableDictionary, этот запрос преуспел.В NSURLSession HTTPBody должен быть NSData?

Но когда я использовал NSURLSession, self.request! .HTTPBody должен быть NSData, поэтому запрос не выполнен.

Как я могу использовать NSURLSession для успешного выполнения запроса?

postDict[@"jgId"] = "1000000000"; 
[manager GET:SELECTDEPART parameters:postDict success:^(AFHTTPRequestOperation *operation, id responseObject) { 

} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"-----%@", error); 
}]; 

//use NSData 

NSJSONSerialization.dataWithJSONObject(postDict, options: NSJSONWritingOptions.PrettyPrinted) 

Пожалуйста, помогите мне.

ответ

0
let params = ["jgId": "1000000000"] 
let data = try? JSONSerialization.data(withJSONObject: params, options: [JSONSerialization.WritingOptions(rawValue: 0)]) 

var request = URLRequest(url: URL(string: "https://my-url.com")!, cachePolicy: .returnCacheDataElseLoad, timeoutInterval: 30) 
request.httpMethod = "POST" 
request.httpBody = data 
request.allHTTPHeaderFields = [:] 

URLSession.shared.dataTask(with: request) { (data, response, error) in 

} 
+0

Вы должны дать ответ в Objective C не быстрым, потому что OP работает с Obj C. –

0

Вы используете метод GET для запроса данных с сервера, поэтому ваши параметры не отправляются по запросу. Данные HTTPBody. Ваши параметры просты через URL-адрес запроса.

В вопросе У вас есть SELECTDEPART в качестве базового URL-адреса запроса и postDict в качестве параметра. Следующее использование кода NSURLSession сделать GET запрос с parameters