Klient webowy dla webservice'u napisanego w C#

0

Witam,

w tematyce C# jestem poczatkujacy. Stworzylem sobie webservice udostepniajacy pewna usluge. Wygenerowalem strone w ASP, dolozylem funkcje JSowe, ktore odbieraja i wyswietlaja informacje uzyskane z webservice'u.

Czy mozna stworzyc aplikacje kliencka dla tego webservice'u bez uzycia ASP? Chcialbym, zeby to byl statyczny klient w postaci pliku html. Googlowalem troche, ale nic pomocnego nie udalo mi sie znalezc.

0
franek_majeranek napisał(a)

Witam,

w tematyce C# jestem poczatkujacy. Stworzylem sobie webservice udostepniajacy pewna usluge. Wygenerowalem strone w ASP, dolozylem funkcje JSowe, ktore odbieraja i wyswietlaja informacje uzyskane z webservice'u.

Czy mozna stworzyc aplikacje kliencka dla tego webservice'u bez uzycia ASP? Chcialbym, zeby to byl statyczny klient w postaci pliku html. Googlowalem troche, ale nic pomocnego nie udalo mi sie znalezc.

Oczywiście, że można. Na google jest masa przykładów, polecam nauczyć się suzkać ;)

0

A moglbys poratowac jakims linkiem?

0

dolozylem funkcje JSowe, ktore odbieraja i wyswietlaja informacje uzyskane z webservice'u.

Jesli odwolujesz sie do webserwisu za pomoca JS, to masz juz odpowiedz. Zrob HTML i JS.

0

Ja polecam http://google.pl

0
johny_bravo napisał(a)

dolozylem funkcje JSowe, ktore odbieraja i wyswietlaja informacje uzyskane z webservice'u.

Jesli odwolujesz sie do webserwisu za pomoca JS, to masz juz odpowiedz. Zrob HTML i JS.

Ale polaczenie z Webservicem odbywa sie za pomoca ASP - a to chce obejsc.

Rev.pl: dzieki za linka. Nie widzialem jeszcze nigdy tej strony.

A tak powaznie - bardzo prosze o jakiegos linka, ja nawet nie mam pojecia pod jakim haslem tego szukac, z C# i Webservice'ow jestem lewy, nie mialem z tym nigdy do czynienia...

0

Powalczylem troche. Kod zrodlowy strony (index.html):

<script type="text/javascript" src="core.js"></script>
<script type="text/javascript">
function zmienZawartosc(){
	var url ="http://localhost:50948/WebSite3/WebServices/WebService.asmx/pobierzProbke";	
	startPOSTRequest(url,'',onComplete,onEnd);
}

function onComplete(responseText, responseXML){
	alert(responseXML);
	//alert(responseXML.selectSingleNode("//pobierzProbkeResult").text);
	/*if(document.getElementById('eee')){alert('hh');
		var eee = document.getElementById("RSSContent");
		eee.innerHTML = responseText;
	}*/
}
		
function onEnd(){
}
</script>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>Delay Load User Control Example</title>
</head>
<body onload="zmienZawartosc();">
    <p id="eee"></p>
</body>
</html>

Kod zrodlowy pliku core.js:

var XMLHttpRequestObject;

function getXMLHttpRequestObject(){

	var wersje = new Array(
		"MSXML2.XMLHTTP.6.0",
		"MSXML2.XMLHTTP.5.0",
		"MSXML2.XMLHTTP.4.0",
		"MSXML2.XMLHTTP.3.0",
		"MSXML2.XMLHTTP",
		"Microsoft.XMLHTTP"
	);
	
	try{
		return new XMLHttpRequest();
	}
	catch(e){
		for(var indeks in wersje){
			try{
				return new ActiveXObject(wersje[indeks]);
			}
			catch(e){
			}
		}
		
		return null;
	}
}

function startPOSTRequest(url,params,onComplete,onEnd){
	XMLHttpRequestObject = getXMLHttpRequestObject();
	if(XMLHttpRequestObject){
		XMLHttpRequestObject.open("POST",url,true);
		XMLHttpRequestObject.onreadystatechange = function(){
				if(XMLHttpRequestObject.readyState == 4){
					if(XMLHttpRequestObject.status == 200){
						var responseXML = XMLHttpRequestObject.reponseXML;
						var responseText = XMLHttpRequestObject.responseText;
						onComplete(responseText,responseXML);
					}
					else{
						alert(XMLHttpRequestObject.status);
					}
					delete XMLHttpRequestObject;
					XMLHttpRequestObject = null;
					onEnd();
				}
				else{
					alert(XMLHttpRequestObject.readyState);
				}
		}
	    XMLHttpRequestObject.send(params);
	}
	else{
		write("Wystąpił błąd aplikacji, prosimy spróbować później");
	}
}

Patrzac w konsole Firebuga widac, ze zadanie sie wykonuje, konczy sie ze statusem 200 (czyli wszystko jest ok). Dolozylem sobie pare alertow w core.js w bloku odpowiedzialnym za wywolanie funkcji onComplete(). Doszedlem do tego, ze on sie w ogole nie wywoluje. Odpowiedz dla zadania z Firebuga

Błąd parsowania XML: nie znaleziono elementu Obszar: moz-nullprincipal:{8103b448-df11-4248-9633-c88ab491a673} Numer linii: 1, kolumna 1:

^

Zrobilem sobie dla testu taki oto skrypt (test.html):

<form action='http://localhost:50948/WebSite3/WebServices/WebService.asmx/pobierzProbke' method="POST">                      
                        
                          <table cellspacing="0" cellpadding="4" frame="box" bordercolor="#dcdcdc" rules="none" style="border-collapse: collapse;">
                          
                        
                        <tr>
                          <td></td>
                          <td align="right"> <input type="submit" value="wyslij" class="button"></td>

                        </tr>
                        </table>
                      

                    </form>

Po zatwierdzeniu formularza otrzymuje odpowiedz w xmlu z webserwisu.

Pytanie za 100 punktow. Czemu zwykly formularz dziala, a zadanie ajaxowe juz nie?

Edit: chyba juz wiem.Strone wywoluje poprzez protokol file:// - a serwer smiga na localhoscie, wiec to nie bedzie dzialac.

1 użytkowników online, w tym zalogowanych: 0, gości: 1