GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Problema ao fazer requisição Post swift

mobile
rest
Tags: #<Tag:0x00007f3113cb7140> #<Tag:0x00007f3113cb6f88>

#1

Olá pessoal, mas uma vez venho pedir auxilio a vocês.
Estou desenvolvendo uma aplicação em Swift utilizando web service escrito em java hospedado na Amazon AWS.

Quando eu tento realizar um cadastro via post o cadastro não é realizado.
O erro que me retorna é o seguinte

FAILURE: Error Domain=NSCocoaErrorDomain Code=3840 “Invalid value around character 0.” UserInfo={NSDebugDescription=Invalid value around character 0.}
FAILURE

trecho do código do cadastro

Alamofire.request(.POST, url, parameters: usuario, encoding: .JSON, headers: nil).responseJSON(completionHandler: { (response) in
                
                if response.result.isSuccess{
                    
                    //self.geraAlerta("Sucesso", mensagem: "Cadastro realizado com Sucesso")
                 self.populaUsuario()
                 self.performSegueWithIdentifier("cadastroTelaPrincipal", sender: self)
                    

                }else{
                    print(response.description,"<-------")
                    self.geraAlerta("Falha", mensagem: "Não foi possível completar o cadastro, tente novamente mais tarde!")
                }
                self.btnCadastrar.userInteractionEnabled = true 
                print(response.result)
                print(response.result.value)
            })

Código no web service

@POST
@Path("/inserir")
@Consumes(MediaType.APPLICATION_JSON)
public void insereUsuario(Usuario usuario) {

	if (usuario != null) {
		try {
			usuario.setFotoByte(Util.converteToByte(usuario.getFoto()));
			usuario.setDataCadastro(new Date());
			
			new UsuarioDAO().inseirUsuario(usuario);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
}

Alguém ai poderia me informar como resolver esse problema?

Se eu tentar acessar a url direto pelo browser me retorna 405


#2

o que você espera receber de retorno, pq o código do webservice não diz o que produz, apenas o que é consumido.


#3

Um método que faz post e é void ?
Se viu inseriu retorna 200 (que já ta errado) ? E se deu alguma exception retorna 200 ?
Curioso pra saber quando ele cai no seu else.
Retorna um Response, e trata pelo menos o mínimo de http code certo, porque aliás está trabalhando com rest e isso é uma das características do mesmo.


#4

Ola amigo, eu sou novo com rest então não tenho grandes conhecimentos, você poderia me indicar o que deveria fazer, eu testei varias vezes rodando local e dava certo so deu problema quando levei pro Amazon AWS.

Grato


#5

Boa noite igomes, eu estou começando agora com rest e não tenho grandes conhecimentos, eu vi vi alguns exemplos usando dessa forma, poderia me auxiliar pra fazer da forma correta?

Nos testes rodando o webservice local funciona perfeitamente, quando levei o projeto pro Amazon AWS, entra no else, apresenta no console do xcode o erro e mostra a alerta.
FAILURE: Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.} FAILURE


#6

Usa o postman, ele é um plugin do chrome para vc fazer requisições http, aí vc coloca o json lá e faz o post e vê se dá sucesso.