2016-07-21 7 views
2

Вот код, я использую, чтобы сделать запрос POST на мой Колба сервер в локальном хосте:запрос Swift Alamofire POST становится GET

func data_request() { 
    let url:NSURL = NSURL(string: "http://192.168.1.192:9880/api/register")! 

    Alamofire.request(.POST, url, parameters: ["login":"login", "password" : "12345"]).responseJSON { response in 
     switch response.result { 
     case .Success: 
      NSLog("Validation Successful") 
     case .Failure(let error): 
      NSLog("\(error), \(String(data: response.data!, encoding: NSUTF8StringEncoding))") 
      return 
     } 
     if (response.result.value as? [String: AnyObject]) != nil{ 
      print(response.result.value) 
     } 
    } 
} 

Но он посылает GET запрос! Оба сервера и локальный прокси сказать, что это был запрос GET - это то, что перехватила Отрыжка:

GET /api/register/ HTTP/1.1 
Host: 192.168.1.192:9880 
Accept: */* 
User-Agent: Project Manager/Roman-Nikitin.Project-Manager (1; OS X 10.11.3) 
Accept-Language: en;q=1.0, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5 
Accept-Encoding: gzip;q=1.0, compress;q=0.5 
Connection: close 

ответ

4

У меня была такая же проблема, вы просто должны поставить / в конце URL. Я думаю, проблема в Alamofire. Он работает странно с нормальными сервером перенаправлениями от www.domain.com/something к www.domain.com/something/

1

Для тех, кто получать здесь, потому что у них есть та же проблема (как я): В моем случае, я уже имел / в конце, и я должен был удалить его. На основании this answer, похоже, сервер перенаправляет исходный запрос POST на запрос GET. Поэтому либо выясните, что требует ваш сервер (конечная косая черта или нет), либо настройте сервер, как в связанном ответе.