Kişisel Sayfaları
İlgi Alanları
İş Tecrubesi
Eğitim Geçmişi
Sertifikalar & Başarılar
Kullanıcıya ait test sonucu bulunmamaktadır.
Dil Becerileri
Son Forum Aktiviteleri
7Android ile wcf service bağlanmak
Arkadaşlar merhaba,
Birkaç gündür bu konuyla ilgili araştırma yapıyorum. Ksoap2 kütüphanesini kullanarak wcf servise bağlanmaya çalışıyorum. Kendi lokalimde de Visual Studio da bir wcf service oluşturuyorum ama bir türlü android tarafında nasıl yapacağımı bilemiyorum. Bağlanmaya çalışırken kullandığım kodlar ise şöyle:
private static final String URL ="http://10.0.2.2:34215/MyWebService.svc";
private static final String NAMESPACE = "http://tempuri.org/";
public static String WebServicesCall(ModelClass1 c1,ModelClass2 c2){
String cevap="";
String METHOD = "GetData";
String SOAP_ACTION = NAMESPACE+METHOD;
try {
SoapObject request = new SoapObject(NAMESPACE, METHOD);
PropertyInfo paramC1=new PropertyInfo();
paramDoc.setName("c1");
paramDoc.setType(c1.getClass());
paramDoc.setValue(c1);
request.addProperty(paramC1);
PropertyInfo paramC2=new PropertyInfo();
paramId.setName("c2");
paramId.setType(c2.getClass());
paramId.setValue(c2);
request.addProperty(paramC2);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.setOutputSoapObject(request);
envelope.addMapping(NAMESPACE, "ModelClass1", new ModelClass1().getClass());
envelope.addMapping(NAMESPACE,"ModelClass2",new ModelClass2().getClass());
HttpTransportSE transport = new HttpTransportSE(URL);
try {
transport.call(SOAP_ACTION, envelope);
Object response=(Object)envelope.getResponse();
//SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
//cevap=response.toString();
Log.e(TAG,response.toString());
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
return cevap;
}
Android web servislerle authentication işlemleri
Android web servislerle authentication işlemleri
Android web servislerle authentication işlemleri
Android'de soap web servisten class veri çekme
Merhaba,
Bunun için Android de Ksoap kütüphanesini kullanabilirsin. Ya da istersen Java daki HttpPost sınıfını kullanarak SOAP servsisin beklediği örüntüde bir xml kullanarak HTTP protokülü ile haberleştirebilirsin. Eğer çekmek istediğin response daki alan sayısı az ise HttpPost classını kullanmanı öneririm. Ksoap bazen sıkıntı yaratabiliyor servis erişimlerinde. Aşağıdaki link üzerinden ksoap ile ilgli bir yazı paylaşıyorum. Umarım işinizi görür.
http://www.oguzozkeroglu.com/android-ksoap2-kullanarak-webservislere-erisme/
Android ile wcf service bağlanmak
Gürkan bey aldığım hata şu şekilde :
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<s:Fault>
<faultcode xmlns:a="http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher">
<a:DeserializationFailed/>
</faultcode>
<faultstring xml:lang="tr-TR">İleti serisi kaldırılmaya çalışılırken biçimlendirici bir özel durum gönderdi:
http://tempuri.org/:newModel parametresi serisi kaldırılmaya çalışılırken bir hata oluştu.
InnerException iletisi: '1. satır 346. konumda hata. 'http://tempuri.org/:newModel'
öğesi, 'http://tempuri.org/:Model' adıyla eşlenen bir türe ait veriler içeriyor.
Seri kaldırıcı bu adla eşlenen herhangi bir tür hakkında bilgi sahibi değil.
Bir DataContractResolver kullanmayı deneyin veya 'Model' öğesine karşılık
gelen türü bilinen türler listesine ekleyin (örneğin KnownTypeAttribute
özniteliğini kullanarak ya da bunu DataContractSerializer öğesine geçirilen bilinen türler listesine ekleyerek).
'. Daha fazla ayrıntı için InnerException öğesine bakın.
</faultstring>
</s:Envelope>
Ayrıca kullandığım ksoap2 kütüphanesindendir diye düşündüm. Bu yüzden kütüphane ile değil de json parse ederek bağlanmayı deneyeyim dedim. Bu sefer de aşağıdaki hatayı alıyorum. Linki kontrol ediyorum doğru çalışıyor. Emületörde oluşturduğum linki debug ederken alıp tarayıcıya yapıştırıyorum doğru bi şekilde sonucu json olarak döndürüyor.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Hostname</h2>
<hr><p>HTTP Error 400. The request hostname is invalid.</p>
</BODY></HTML>
NOT :
Emületörde kullandığım link şöyle : http://10.0.2.2:51220/Service1.svc/checkLogin?name=a&pass=1
Taraycıya yapıştırdığım link : http://localhost:51220/Service1.svc/checkLogin?name=a&pass=1