2015-08-01 5 views
4

Эй, я пытаюсь выяснить эту проблему в течение довольно долгого времени, поэтому теперь я прошу вас, ребята, о помощи. В моем проекте я пытаюсь отправить запрос POST на веб-сайт с формой входа для доступа к серверу. Но мне как-то не удается передать данные. На сайте я пытаюсь получить доступ в https://edu.sh.chSwift HTTP POST Request Login

в инспекторе моего браузера, я вижу, что нужен метод Post передать данные:

<form id="form1" name="form1" autocomplete="off" method="post" action="/uniquesigfe5a0f1f915f15b647d0b7a5306be984/uniquesig0/InternalSite/Validate.asp" onsubmit="return(SubmitForm());"></form> 

вот мой код:

функ PostingCredentials() {

 let myUrl = NSURL(string: self.manipulatedUrl) 
     let request = NSMutableURLRequest(URL:myUrl!); 
     request.HTTPMethod = "POST"; 

     // Compose a query string 
     let form1 = "user_name=MyUsername&password=MyPassword" 

     request.HTTPBody = form1.dataUsingEncoding(NSUTF8StringEncoding) 

     let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { 
      data, response, error in 

      if error != nil 
      { 
       println("error=\(error)") 
       return 
      } 
      println("response = \(response)") 
      // You can print out response object 
      let responseString = NSString(data: data, encoding: NSUTF8StringEncoding) 
      // 
      println("responseString = \(responseString)") 

     } 

     task.resume() 

    } 

Обратите внимание, что self.manipulateUrl равно к URL-адресу, который появляется при регистрации в журнале и отправке моих учетных данных (https://edu.sh.ch/uniquesigfe5a0f1f915f15b647d0b7a5306be984/uniquesig0/InternalSite/Validate.asp)

Post Post что-то, но ответ всегда является какой-то страницей ошибок (я не получаю ошибок в коде, но ответ сервера ошибка)

Так что для конца мой главный вопрос, являются:

  • Что проблема с моим кодом
  • , где я должен послать мой метод POST для того, чтобы логин URL страницы или URL-адрес проверки подлинности?

Заранее спасибо

+0

Почему вы не передаете параметр языка в ios? –

+0

Вы воспроизводили запрос POST, используя cURL или какой-либо HTTP-запрос? – Fantattitude

+0

@Fantattitude Что вы имеете в виду при воспроизведении запроса POST? Вы имеете в виду, как я узнал, что мне нужно использовать POST? жаль, что я новичок в программировании с http – user4321563

ответ

2

Некоторые проблемы с вашей веб-странице. Что-то не так в веб-кодировании. Затем вы также можете попробовать под кодом:

let form1 = "user_name=MyUsername&password=MyPassword" 
let request:NSMutableURLRequest = NSMutableURLRequest(URL: NSURL(string: "https://edu.sh.ch")!) 
request.addValue("application/json", forHTTPHeaderField: "Accept") 
request.HTTPMethod = "POST" 
request.setValue("application/json", forHTTPHeaderField: "Content-type") 
request.HTTPBody = form1.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) 

NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) { (response:NSURLResponse!, data:NSData!, error:NSError!) -> Void in 

    var str = NSString(data: data, encoding: NSUTF8StringEncoding) 
    //var dict = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as! NSArray 
} 
+0

Это не сработало для меня. В вашем запросе используется NSJSONSerialization, но почему, если на сайте нет JSON? – user4321563

+0

NSURLConnection устарел в iOS 9 .. – BilalReffas