0

IPad から SOAP Web サービスに画像を送信しようとしています。私はまだ成功できませんでした。画像を取得してその形式に変換する方法がわかりません。多くのチュートリアルがありますが、私はそれらを理解していません。彼らはすべて異なることをしています。

Webサービスで画像を簡単に送信するにはどうすればよいですか? ここに私のコードがあります

NSString *soapMessage = [NSString stringWithFormat:
                         @"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
                         "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n"
                         "<soap:Body>\n"
                         "<SendData xmlns=\"http://tempuri.org/\">\n"
                         "<containerId>%@</containerId>"
                         "<date_>%@</date_>"
                         "<image1>%@</image1>"
                         "<image2>%@</image2>"
                         "<image3>%@</image3>"
                         "<question1>%@</question1>"
                         "<question2>%@</question2>"
                         "<question3>%@</question3>"
                         "<question4>%@</question4>"
                         "<question5>%@</question5>"
                         "<question6>%@</question6>"
                         "<notes>%@</notes>"
                         "<transDate>%@</transDate>"
                         "<userId>%@</userId>"
                         "<macId>%@</macId>"
                         "<sFileID>%@</sFileID>"                             
                         "</SendData>"
                         "</soap:Body>\n"
                         "</soap:Envelope>\n", @"33", @"2013-09-09", @"***image***1" ,@"***image***3" ,@"***image***3" ,@"true" ,@"true", @"true", @"true" , @"true" , @"3", @"notes", @"2013-09-09", @"123", @"mymacid", @"sfileid"];

何か提案はありますか?

文字列を送るように送りたい

4

3 に答える 3

1

私は同じ問題に遭遇しました。解決するには、Web サービスを REST サービス (JSON/XML) として公開します。私の場合、すべての SOAP サービスを REST サービスとして提供する中間プラットフォームを作成しました。iPhone アプリケーションはすべてのペイロードを中間プラットフォームに送信し、中間プラットフォームは Web サービス呼び出しを介して変更を更新します。すべての画像を JSON ペイロードの base64 文字列として中間プラットフォームに渡しました。

于 2013-05-24T10:26:27.487 に答える
0

これをアプリに実装しました。iPhoneから撮影した画像のサイズは巨大になります。したがって、これらの画像を base64 文字列に変換すると、アプリのパフォーマンスが低下します。まず、画像のサイズを変更して画像サイズを縮小します。

     -(UIImage *) imageWithImage:(UIImage *) image scaledTOSize:(CGSize) newsize
{
    UIGraphicsBeginImageContext(newsize);
    [image drawInRect:CGRectMake(0, 0, newsize.width, newsize.height)];
    UIImage *newimag=UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newimag;
}

画像を小さいサイズまたは必要なサイズに変換した後、UIImage を NSData に変換します

 NSData *imageData=[[NSData alloc] initWithData:UIImagePNGRepresentation(image)];

以下のサードパーティ ライブラリを使用して、NSData を base64 文字列に変換します。
base64.h NSData+Base64.h

NSstring *imageString=[imageData base64EncodedString];
imageString=[imageString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

文字列をサービスに送信できます。これがあなたを助けることを願っています。

于 2013-05-29T15:10:45.787 に答える
-1

このチュートリアルを試してください。これにより、画像が base64 に変換されます。

これはあなたを助けるかもしれません。

于 2013-05-24T08:42:49.647 に答える