我正在实施一个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\"?> \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"
"<SetUserInfo xmlns=\"http://abc.com/\">\n"
"<Data><![CDATA[ %s ]]></Data> \n"
"</SetUserInfo> \n"
"</soap:Body>\n"
"</soap:Envelope>\n",[uploadValues UTF8String]];
printf("\n Input string:%s",[soapString UTF8String]);
NSURL *url = [NSURL URLWithString:@"http://abc.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:/abc.com/SetUserInfo" forHTTPHeaderField:@"SOAPAction"];
[theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody: [soapString dataUsingEncoding:NSUTF8StringEncoding]];
[serverConnections startEstablishingConnectionwithServer:theRequest];
答案 0 :(得分:0)
来自Here
[req addValue:@"image/jpeg" forHTTPHeaderField:@"Content-Type"];
[req setHTTPBody:imgData]