Pergunta

Estou ciente esta pergunta foi feita várias vezes, mas eu era incapaz de encontrar uma resposta definate que melhor se adequam a minha situação.

Eu quero a capacidade de ter o usuário selecionar uma imagem a partir da biblioteca, e depois que a imagem é convertida para um tipo NSData. Em seguida, tenho um requisito para chamar um .NET C # webservice através de um HTTP get tão idealmente eu preciso a string resultante para ser UTF8 codificado.

Isto é o que eu tenho até agora:

NSData *dataObj = UIImageJPEGRepresentation(selectedImage, 1.0);
    [picker dismissModalViewControllerAnimated:YES];
    NSString *content =  [[NSString alloc] initWithData:dataObj encoding:NSUTF8StringEncoding];
    NSLog(@"%@", content);

A declaração NSLog simplesmente produz uma saída como:

2009-11-29 14:13:33.937 TestUpload2[5735:207] (null)

Obviamente este não é o que eu esperava alcançar, portanto, qualquer ajuda seria ótimo.

Atenciosamente

Foi útil?

Solução

Você não pode criar uma string codificada UTF-8 de apenas quaisquer dados binários arbitrários - as necessidades de dados para realmente ser UTF-8 codificado, e os dados para sua imagem JPEG, obviamente, não é. Os dados binários não representa uma corda, para que você não pode criar diretamente uma corda a partir dele -. -[NSString initWithData:encoding:] falhar de forma adequada no seu caso

Assumindo que você está usando NSURLConnection (embora uma declaração semelhante deve ser verdadeiro para outros métodos), você vai construir o seu NSMutableURLRequest e uso -setHTTPBody: que você precisa passar um objeto NSData para. Eu não entendo por que você estaria usando um método GET aqui desde que parece que você está indo para ser upload esses dados de imagem para o seu serviço web -. Você deve estar usando POST

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top