POST request using application/x-www-form-urlencoded
Try like this code
Objective C
NSString *post =[NSString stringWithFormat:@"AgencyId=1&UserId=1&Type=1&Date=%@&Time=%@&Coords=%@&Image=h32979`7~U@)01123737373773&SeverityLevel=2",strDateLocal,strDateTime,dict];NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]];NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];[request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://google/places"]]];[request setHTTPMethod:@"POST"];[request setValue:postLength forHTTPHeaderField:@"Content-Length"];[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];[request setHTTPBody:postData];NSError *error;NSURLResponse *response;NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];NSString *str=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
Swift 2.2
var post = "AgencyId=1&UserId=1&Type=1&Date=\(strDateLocal)&Time=\(strDateTime)&Coords=\(dict)&Image=h32979`7~U@)01123737373773&SeverityLevel=2"var postData = post.dataUsingEncoding(NSASCIIStringEncoding, allowLossyConversion: true)!var postLength = "\(postData.length)"var request = NSMutableURLRequest()request.URL = NSURL(string: "http://google/places")!request.HTTPMethod = "POST"request.setValue(postLength, forHTTPHeaderField: "Content-Length")request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")request.HTTPBody = postDataNSError * errorNSURLResponse * responsevar urlData = try! NSURLConnection.sendSynchronousRequest(request, returningResponse: response)!var str = String(data: urlData, encoding: NSUTF8StringEncoding)
Swift 3.0
let jsonData = try? JSONSerialization.data(withJSONObject: kParameters) let url: URL = URL(string: "Add Your API URL HERE")! print(url) var request: URLRequest = URLRequest(url: url) request.httpMethod = "POST" request.httpBody = jsonData request.setValue(Constant.UserDefaults.object(forKey: "Authorization") as! String?, forHTTPHeaderField: "Authorization") request.setValue(Constant.kAppContentType, forHTTPHeaderField: "Content-Type") request.setValue(Constant.UserAgentFormat(), forHTTPHeaderField: "User-Agent") let task = URLSession.shared.dataTask(with: request, completionHandler: { data, response, error in if data != nil { do { let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! NSDictionary print(json) } catch let error as NSError { print(error) } } else { let emptyDict = NSDictionary() } }) task.resume()
Swift 4
let headers = [ "Content-Type": "application/x-www-form-urlencoded" ] let postData = NSMutableData(data: "UserID=351".data(using: String.Encoding.utf8)!) let request = NSMutableURLRequest(url: NSURL(string: "Add Your URL Here")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error!) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse!) do { let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) print(json) } catch { print(error) } } }) dataTask.resume()
Alamofire
Alamofire.request("Add Your URL Here",method: .post, parameters: ["CategoryId": "15"]) .validate(contentType: ["application/x-www-form-urlencoded"]) .responseJSON { (response) in print(response.result.value) }
I hope this code useful for you.
Swift 4
let params = ["password":873311,"username":"jadon","client_id":"a793fb82-c978-11e9-a32f-2a2ae2dbcce4"]let jsonString = params.reduce("") { "\($0)\($1.0)=\($1.1)&" }.dropLast()let jsonData = jsonString.data(using: .utf8, allowLossyConversion: false)!urlRequest.addValue("application/x-www-form-urlencoded", forHTTPHeaderField:"Content-Type")urlRequest.httpBody = jsonData
@fatihyildizhan
not enough reputation to directly comment your answer therefore this answer.
Swift 1.2
let myParams = "username=user1&password=12345"let postData = myParams.dataUsingEncoding(NSASCIIStringEncoding, allowLossyConversion: true)let postLength = String(format: "%d", postData!.length)var myRequest = NSMutableURLRequest(URL: self.url)myRequest.HTTPMethod = "POST"myRequest.setValue(postLength, forHTTPHeaderField: "Content-Length")myRequest.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")myRequest.HTTPBody = postDatavar response: AutoreleasingUnsafeMutablePointer<NSURLResponse?> = nil
This code above just works fine in my case.