2011-08-25 25 views
5

Bazı web sitelerinde şu anda uygulanan bazı .NET asmx web hizmetlerini tüketmem gerekiyor. Bu web servislerini webpsit ile aynı şekilde tüketen bir uygulama oluşturmam gerekiyor. İki problem var. Öncelikle, bu webservice yöntemleri (aramalar, kullanılan format ve benzeri) hakkında hiçbir şartım yok. İkincisi, JSON verilerini API'sini kullanarak flick'ten almak için JSON-framework kullanan bir uygulama oluşturdum. Sanırım bu, REST web servislerini kullanarak yapıldı :) Anladığım kadarıyla, sunucuya/sunucuya giriş yapmak için bir istek dizesi oluşturmalıyım, daha sonra web sunucusuna aktarmalı, sonuçları almalı, (XML veya JSON) ayrıştırmalıyım. sonra onları görüntüleyin. Yani, mevcut web sitesinin webservislerinin biçimini nasıl tanımlayacağımı bilmiyorum. Bu web sitesinin kaynağını görüntüledim, bir sürü gizemli kontrol, doğrulama ve benzeri şeyler yapan Javascript kod dosyalarını gördüm. Peki, doğru formatı nasıl belirleyebilirim?Nasıl ayırt edilir, SOAP veya REST web servisidir?

cevap

6

Bir .NET ASMX hizmeti ise, her zaman SOAP olur. HTTP üzerinden açık olan bir SOAP servisi her zaman iletişim için HTTP POST yöntemlerini kullanır. Ayrıca, bir JSON çerçevesini kullanma veya kendi HTTP isteklerinizi bu web hizmetine yönlendirme konusunda endişelenmenize gerek kalmaması için bir .wsdl dosyasını da istemci kodu kullanmanız gerekir. müşteri bunun için sana iyi bakmalı. @whaley onun cevabını söylediği gibi burada bir SOAP hizmeti ile uğraşıyoruz gibi

This question seems to have the answers you need for doing this in Objective-C.

+0

Firefox firebug ile daha fazla bilgi görüntülemeye çalıştım. İstekleri izledikten sonra, isteğin bir bağlantıya yapıldığını görüyorum: http://www.website.com/GetQuote.aspx?units=1&len=1&width=1&height=1&weight=1&type=1&qty=1&cnt=GB&postcode=as123 It REST web hizmeti gibi görünüyor. – Centurion

2

görünüyor. Bunu bilmek, doğru yönde bir adım atmanızı sağlar, ancak onunla etkileşime geçmek isterseniz bundan daha fazlasını yapmanız gerekir. Desteklediği SOAP işlemlerinin ayrıntılarını, istek ve yanıt iletilerinin XML şemasını bilmeniz gerekir. WSDL dosyasını bulabiliyorsanız, bu bilgilerin tümünü sağlamalısınız.

WSDL dosyasını izleyemiyorsanız (bazı hizmetler çeşitli nedenlerle kolaylaştırmak istemiyorsa), yine de bunu anlayabilirsiniz. Web sitesi SOAP arayüzünü kullanarak gerçekten etkileşime giriyorsa, tarayıcınızın istediğiniz sayıda araca gönderdiği isteklere bakabilirsiniz. Safari'de geliştirici araçları menüsünü etkinleştirin ve ardından web denetçisini gösterin. HTTP isteklerinin ayrıntılarını görebilir ve neler olduğunu görebilirsiniz. Firefox, aynı ve daha fazlasını yapabilen firebug eklentisine sahiptir. Her tarayıcının geliştiriciler için kendi araçları vardır, ancak tarayıcınız için doğru aracı bulmanız gerekir.

Uyarı Sözü: Genellikle arka uç hizmetinizle etkileşimde bulunan bir web sayfası aslında SOAP hizmetini doğrudan kullanmaz. İhtiyacı olan aramaları yapmak için alternatif ve kamuya açık olmayan bir arayüz kullanıyor olabilir. Tarayıcınızın gönderdiği isteklere bakarsanız ve bir SOAP mesajı gibi görünürse (farklı istek/yanıt XML'i olan SoapEnvenlope öğeleri gibi birçok şey), SOAP mesajlarını objektif-c'den kopyalayabileceğinizi varsaymak oldukça güvenlidir. Değilse, bir WSDL dosyasını izleyemezseniz şansınız kalmaz.

İlgili konular