如何使用来自iPhone应用程序的SOAP请求将图像+ xml上传到Web服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用来自iPhone应用程序的SOAP请求将图像+ xml上传到Web服务器相关的知识,希望对你有一定的参考价值。

我正在实现iPad应用程序。在我的应用程序中,我需要从用户那里获取一些信息和个人资料图片,并需要使用SOAP请求将该信息上传到Web服务器。我已经完成了文字输入上传。但是当涉及到图像时,我并不知道。我知道,要上传图像,我们需要将其转换为我完成的NSData,但是如何将其添加到我的帖子字符串中?

我的代码如下:

NSData* imageData = UIImagePNGRepresentation(myPic);
NSString* uploadValues=@"";
uploadValues = [uploadValues stringByAppendingString:[NSString stringWithFormat:@"<UserInformation><UserInfo action="INSERT"><Userid>123</Userid><FirstName>abc</FirstName><LastName>xyz</LastName><Contact>00000000</Contact><Email>abc@googole.com</Email><Address>USA</Address><Image>How can I put image data here? is that work if I put data here?</Image></UserInfo></UserInformation>"];
        uploadValues = [uploadValues stringByReplacingOccurrencesOfString:@"(null)" withString:@" "];
        serverConnections=[ServerConnections sharedConnections];
        serverConnections.delegate=self;

        NSString* soapString = [NSString stringWithFormat:@"<?xml version="1.0" encoding="utf-8"?> 
"
                                "<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/"> 
"
                                "<soap:Body>
"
                                "<SetUserInfo xmlns="http://example.com/">
"
                                "<Data><![CDATA[ %s ]]></Data> 
"
                                "</SetUserInfo> 
"
                                "</soap:Body>
"
                                "</soap:Envelope>
",[uploadValues UTF8String]];

        printf("
 Input string:%s",[soapString UTF8String]);


        NSURL *url = [NSURL URLWithString:@"http://example.com/xyz.asmx"];
        NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
        NSString *msgLength = [NSString stringWithFormat:@"%d", [soapString length]];

        [theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
        [theRequest addValue: @"http:/example.com/SetUserInfo" forHTTPHeaderField:@"SOAPAction"];
        [theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
        [theRequest setHTTPMethod:@"POST"];
        [theRequest setHTTPBody: [soapString dataUsingEncoding:NSUTF8StringEncoding]];
        [serverConnections startEstablishingConnectionwithServer:theRequest];
答案

来自Here

 [req addValue:@"image/jpeg" forHTTPHeaderField:@"Content-Type"];
 [req setHTTPBody:imgData]

以上是关于如何使用来自iPhone应用程序的SOAP请求将图像+ xml上传到Web服务器的主要内容,如果未能解决你的问题,请参考以下文章

如何删除 来自SOAP请求

如何在 iphone 的表视图上加载 Soap 响应

如何从iPhone访问SOAP服务

来自 Siebel 的 SOAP 请求在每个元素中都有命名空间

如何使用 c# 为 paypal CreateInvoice api 创建 SOAP XML 请求消息

如何在 iPhone 中使用 PhoneGap 调用基于 SOAP 的 Web 服务?