Я отправил вопрос ранее, но, к сожалению, я не получил никакого полезного ответа, поэтому попробую по-другому.Вот сценарий.
У меня есть простая служба WCF RESTful, настроенная в размещенной среде.
Я пытаюсь связаться с этой службой с iphone 4. Вот что работает.
У меня есть два шаблона URI.Один для GET и один для POST.
Запустив консольное приложение на моем локальном компьютере, я могу получать и отправлять данные.Данные извлекаются из запроса и отправляются в базу данных mysql.
На iphone я могу получить данные.
К сожалению, я не могу POST-данные с iphone.
Я пытался заставить работать ASIHTTPResuest.Когда я отправляю запрос, я получаю responseStatusCode 200 обратно.
Я пытался создать запрос, используя NSmutableTableRequest, но это тоже не сработало.Запрос был отправлен без ошибок.
На данный момент я предполагаю, что запрос POST правильный, так как я не получаю никакой ошибки, но каким-то образом веб-сервис не может получить данные из тела XML.
Я все еще нахожусь в процессе обучения WCF, поэтому мне здесь не хватает чего-то "базового".
Будет ли этот Datacontract и Operationcontact
[OperationContract]
[WebInvoke(UriTemplate = "/create",
Method = "POST", RequestFormat=WebMessageFormat.Xml,
BodyStyle=WebMessageBodyStyle.Bare)]
void CreateProduct(Product product);
....
[DataContract(Namespace="")]
public class Product {
[DataMember]
public string Id { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string Description { get; set; }
}
бытьВы можете прочитать это сообщение?
NSURL *url = [NSURL URLWithString:@"http://www.mydomian.com/create"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
NSData *myPostData = [[NSString stringWithFormat:@"<Product><Description>desc1</Description><Id></Id><Name>somebody</Name></Product>"] dataUsingEncoding:NSUTF8StringEncoding];
NSMutableData *myMutablePostData = [NSMutableData dataWithData:myPostData];
[request setPostBody:myMutablePostData];
[request setRequestMethod:@"POST"];
[request addRequestHeader:@"Content-Type" value:@"application/xml"];
[request setDelegate:self];
[request startSynchronous];
Буквально любая помощь будет очень ценной.