Obrigado pela leitura.
Eu sou novo no iOS e estou tentando fazer upload de uma imagem e um texto usando o multi-part form encoding
iOS.
O curl
equivalente é algo assim:curl -F "param1=value1" -F "[email protected]" "http://some.ip.address:5000/upload"
O curl
comando acima retorna a resposta correta esperada emJSON.
Problema: continuo recebendo uma solicitação HTTP 400, o que significa que estou fazendo algo errado ao compor o corpo HTTP POST.
O que eu fiz: para alguma referência, experimentei o aplicativo Flickr API iOS "POST size too large!" e Objetivo C: Como fazer upload de imagem e texto usando HTTP POST? . Mas, continuo recebendo um HTTP 400.
Tentei o, ASIHttpRequest
mas encontrei um problema diferente lá (o retorno de chamada nunca foi chamado). Mas não investiguei mais sobre isso, pois soube que o desenvolvedor parou de oferecer suporte à biblioteca: http://allseeing-i.com/[request_release] ;
Alguém poderia me ajudar?
fonte
Respostas:
Este é o código do meu aplicativo para postar uma imagem em nosso servidor web:
fonte
A resposta de XJones funcionou perfeitamente .
Mas ele não mencionou / declarou variáveis
_params
,BoundaryConstant
erequestURL
. Então, pensei em postar essa parte como um add-on ao seu post, para que possa ajudar outras pessoas no futuro.Como mencionei antes, esta não é uma resposta em si, apenas um addon para a postagem de XJones .
fonte
Para postar imagem http e enviar nome de usuário e senha pelo método de postagem
fonte
Use AFNetworking; Coloque outros parâmetros no dicionário de parâmetros e anexe os dados da imagem aos dados do formulário.
fonte
Aqui está minha biblioteca de kit de rede semelhante para upload de arquivos como forma de várias partes:
Use o delegado para notificar sobre o andamento do upload.
Use o notificationName para notificar quando a solicitação for concluída.
Use a fila para adicionar esta solicitação em sua fila de operação para que seja processada no momento certo.
fonte
aqui está o código swift funcional traduzido do código fornecido por @xjones. Muito obrigado pela sua ajuda, companheiro. O seu foi o único jeito que funcionou para mim. Usei este método para enviar 1 imagem e um outro parâmetro para um serviço da web feito em asp.net
fonte
Aqui está uma versão do Swift. Observe que se você não quiser enviar dados do formulário, ainda é importante enviar o limite do formulário vazio. O Flask, em particular, espera dados de formulário seguidos de dados de arquivo e não será preenchido
request.files
sem o primeiro limite.fonte
Carregar imagem com dados de formulário usando a classe NSURLConnection no Swift 2.2 :
Nota: Sempre use o
sendAsynchronousRequest
método em vez desendSynchronousRequest
para enviar / baixar dados para evitar o bloqueio do thread principal. Aqui, usei sendSynchronousRequest apenas para fins de teste.fonte
Posso mostrar um exemplo de upload de um arquivo .txt para um servidor com
NSMutableURLRequest
eNSURLSessionUploadTask
com a ajuda de um script php .script php
fonte
fonte