我正在处理从iphone到C#网络服务的图片上传。这是iPhone代码
NSString *soapMessage=[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/\">\n"
"<soap:Body>\n"
"<PutImage xmlns=\"http://tempuri.org/\">\n"
"<ImgInputString>%@</ImgInputString>\n"
"</PutImage>\n"
"</soap:Body>\n"
"</soap:Envelope>\n",imageString];
NSLog(soapMessage);
NSURL *url=[NSURL URLWithString:@"http://192.168.2.7/ImageWebService/Service1.asmx"];
NSMutableURLRequest *theRequest=[NSMutableURLRequest requestWithURL:url];
NSString *msgLength=[NSString stringWithFormat:@"%d",[soapMessage length]];
[theRequest addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue:@"http://tempuri.org/PutImage" forHTTPHeaderField:@"SOAPAction"];
[theRequest addValue:msgLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody:[soapMessage dataUsingEncoding:NSUTF8StringEncoding]];
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
但是当我访问服务器时,我收到此错误消息。但是当我直接将图像字符串复制并粘贴到webservice中时,我得到了图像。它只是从iPhone上抛出错误。
请帮忙
答案 0 :(得分:0)
我也遇到过这方面的麻烦,我相信这是编码,(MS服务器具体?)这就是我的建议。
[theRequest setHTTPBody:[soapMessage dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]];
答案 1 :(得分:0)
我解决了这个问题。我已将服务器端输入更改为字符串(bas64字符串),但我正在点击的Web服务不是更新的,是前一个byte []输入。所以,我将inetpub / wwwroot / bin中我的web服务的dll挂钩到新的chnaged Web服务.dll。现在它就像一个魅力。
在NWCoder中,您可以将字符串加密为base64编码,并将其作为字符串发送到c#web serice,然后将i转换为byte []。这对我来说很顺利。任何方式都可以解决你的建议。