Моему приложению iPhone необходимо отправить объект в уже существующую веб-службу .NET SOAP, чтобы его можно было сохранить на сервере базы данных. Я подумал, что самый простой способ сделать это - создать XML-представление объекта и передать его веб-службе. Тем не менее, это не похоже на работу. Если XML более чем на один уровень, метод веб-службы, по-видимому, не вызывается (метод веб-службы записывает запись в журнал событий при его вызове).
Например, если XML:
<Name>Jim</Name>
Метод веб-службы вызывается, и в журнале событий на веб-сервере есть запись.
Если XML:
<Person><Name>Jim</Name></Person>
Метод веб-службы не вызывается (в журнале событий нет записи).
Вот определение метода веб-службы:
public string SubmitiPhoneObject(string theObjectAsXml) {
WriteToEventLog("Begin Service.SubmitiPhoneObject");
// Do some work…
}
А вот запрос SOAP, который я отправляю с iPhone:
<?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>
<SubmitiPhoneObject xmlns="http://www.myServer.com/iPhoneService/">
<theObjectAsXml>
<TheObject>
<PersonID>5263</PersonID>
<DepartmentID>379</DepartmentID>
</TheObject>
</theObjectAsXml>
</SubmitiPhoneObject>
</soap:Body>
Кто-нибудь знает, почему не вызывается метод веб-службы? У кого-нибудь есть лучшие / более простые предложения о том, как отправить объект в веб-сервис из приложения iPhone?
Спасибо!