Какой аргумент параметра используется в запросе Alamofire? Получил результаты без указания параметров - PullRequest
0 голосов
/ 29 мая 2020

Я использовал Alamofire для сети в Swift и не дополнял информацию для аргумента параметра в запросе. Я получил результаты в порядке. Кто-нибудь знает, для чего нужен аргумент параметра и когда мне следует для него дополнить информацию?

    let editedFlowerName = flowerName.replacingOccurrences(of: " ", with: "%20", options: .literal, range: nil)
    let url = "https://en.wikipedia.org/w/api.php?action=query&format=json&prop=extracts&exintro&explaintext&redirects=1&indexpageids"
    guard let wikiURL = URL(string: "\(url)&titles=\(editedFlowerName)") else {fatalError("Error creating url")}
    //print(wikiURL)
    AF.request(wikiURL, method: .get).validate()
      .responseJSON { (response) in
          let json = JSON(value)
          print(json)
        }

1 Ответ

1 голос
/ 29 мая 2020

Параметры не являются обязательными, если вы не хотите отправлять некоторые данные вместе с запросом. При использовании кодировки по умолчанию запросы GET, DELETE и HEAD кодируют параметры как строку запроса и добавляют ее к URL-адресу. Однако для всех остальных запросов - POST, PATCH, PUT, OPTIONS, CONNECT - параметры кодируются как строка запроса и отправляются как тело запроса.

Вы можно изменить это поведение, изменив тип кодировки.

Например, установив кодировку queryString, вы можете установить или добавить результат закодированной строки запроса к существующей строке запроса.

URLEncoding(destination: .queryString)

Аналогичным образом вы можете установить результат закодированной строки запроса в качестве HTTP-тела URL-запроса для всех запросов с использованием httpBody.

URLEncoding(destination: . httpBody)
...