我几次问过这个问题,我还没有得到一个好的答案。可能是我做错了。我想发送一个包含一些文本参数和图像的Http Post请求。 在iPhone中:
NSString reqstr = "param1=val1¶m2=val2&..."
NSData *strData = [str DataUsingEncoding:NSUTF8StringEncoding]; //parameters
NSData *imageData = [NSData NSJPEGRepresenation(myImage.jpg,1)]; //image
NSMutableData *body = ...;
body.appendData = strData;
body.appendData = imageData;
req.setHttpBody = body;
在WCF中:
void postData(Stream strm)
{
//strm contains "param1=val1¶m2=val2.....image raw binary here..........."
}
[DataContract]
class Employee { string param1,string param2, Stream photo..}
答案 0 :(得分:0)
WCF需要opt-In序列化,因此使用[DataContract]标记类不足以序列化任何成员,您要序列化的任何成员也必须使用[DataMember]标记。此外,没有理由你自己发送流,你应该可以做这样的事情:
[DataContract]
class Employee
{
[DataMember]
string param1;
[DataMember]
string param2;
[DataMember]
JPEG image;
}
//Within your service, the postData contract will accept an Employee object from the caller // and perform some logic on it in the service.
void postData(Employee emp)
{
//Do something with emp
}
如果您有任何问题或者您提供的建议更多,请与我们联系。