Estou tentando executar uma solicitação HTTP no Swift, para parâmetros do POST 2 em um URL.
Exemplo:
Ligação: www.thisismylink.com/postName.php
Params:
id = 13
name = Jack
Qual é a maneira mais simples de fazer isso?
Eu nem quero ler a resposta. Eu só quero enviar isso para realizar alterações no meu banco de dados através de um arquivo PHP.
post
swift
parameters
http-post
httprequest
angeant
fonte
fonte
Respostas:
No Swift 3 e posterior, você pode:
Onde:
Isso verifica tanto os erros fundamentais de rede quanto os erros HTTP de alto nível. Essa porcentagem também escapa corretamente dos parâmetros da consulta.
Observe que usei um
name
deJack & Jill
, para ilustrar ox-www-form-urlencoded
resultado adequado dename=Jack%20%26%20Jill
, que é "codificado em porcentagem" (ou seja, o espaço é substituído por%20
e&
o valor no é substituído por%26
).Veja a revisão anterior desta resposta para a versão Swift 2.
fonte
POST
solicitação trivial , pode usar o acima.$_POST
e nomes de arquivos, eu reduziria isso para algo mais simples: o script PHP não será executado se você não conseguir a URL correta. Mas nem sempre é necessário incluir o nome do arquivo (por exemplo, o servidor pode estar fazendo o roteamento de URL ou ter nomes de arquivos padrão). Nesse caso, o OP nos forneceu uma URL que incluía um nome de arquivo, então eu simplesmente usei a mesma URL que ele.URLSession
esse respeito. Todas as APIs de rede são inerentemente assíncronas, como deveriam. Agora, se você estiver procurando outras maneirasURLSession
simples de lidar com solicitações assíncronas, considere agrupá- las ( solicitações ou solicitações da Alamofire) emOperation
subclasse personalizada assíncrona . Ou você pode usar uma biblioteca de promessas, como PromiseKit.Swift 4 e acima
fonte
Para quem procura uma maneira limpa de codificar uma solicitação POST no Swift 5.
Você não precisa lidar com a adição manual de porcentagem de codificação. Use
URLComponents
para criar um URL de solicitação GET. Em seguida, use aquery
propriedade desse URL para obter a porcentagem de caracteres de consulta escapada corretamente.A
query
string será escapada corretamente:Agora você pode criar uma solicitação e usar a consulta como HTTPBody:
Agora você pode enviar a solicitação.
fonte
Aqui está o método que eu usei na minha biblioteca de log: https://github.com/goktugyil/QorumLogs
Esse método preenche formulários html no Google Forms.
fonte
application/x-www-form-urlencoded
que você está definindo?fonte
fonte
Todas as respostas aqui usam objetos JSON. Isso nos deu problemas com os
$this->input->post()
métodos de nossos controladores Codeigniter. OCI_Controller
JSON não pode ler diretamente. Usamos esse método para fazê-lo SEM JSONAgora seu CI_Controller poderá obter
param1
eparam2
usar$this->input->post('param1')
e$this->input->post('param2')
fonte