Zum Inhalt springen

Wie miit C# auf Webservice zugreifen?


Empfohlene Beiträge

Geschrieben

Hallo zusammen,

ich versuche mit C# auf einen Webservice zuzugreifen und möchte diesem dann einige Parameter übergeben (Username, ID usw.)

Hat jemand ein gutes Tutorial oder kann mir anhand eines Beispiels erklären wie das geht?

Komme mit den Beispielen, die mir google bietet nicht wirklich klar.

Danke!

Viele Grüße

DeMue

Geschrieben

Ich hab dann noch eine zweite Frage.

Wenn ich nun auf einen Webservice zugreifen möchte, der den Flash Player voraussetzt, sagt mir Visual Studio, dass er nicht installiert ist.

Der Flash Player ist jedoch installiert. Versuche ich den Flash Player nun direkt in dem Fenster, wo man die WebReferenz hinzufügt zu installieren,

geht es nicht wegen den Sicherheitseinstellungen, die im Browser (IE) jedoch freigegeben sind.

Wo kann ich die Sicherheitseinstellungen (im Visual Studio?) runtersetzen um den Flash Player installieren zu können? Wie gesagt im Internet Explorer funktioniert alles einwandfrei...

Geschrieben

Öhm was meinst du mit "WebService der den FlashPlayer vorraussetzt"?

Ein Webservice liefert dir ja nur irgendwelche Daten. Wenn das jetzt ein Flash Stream sein sollte dann müsstest du doch ein entsprechendes Control auf deiner Form haben welches du mit dem Stream fütterst, oder die Daten in einer Datei auf der Festplatte speichern oder nicht?

Geschrieben

Hi,

das Problem mit dem Flash hat sich mittlerweile erledigt,

hatte den falschen Port angegeben und Visual Studio wollte deshalb immer den Flash Player haben.

So nun habe ich die WebReferenzen eingebunden und möchte an die WebServices mehrere Parameter übergeben.

Bsp.: Dem WebService RoomService möchte ich den Raumnamen übergeben, dem UserService möchte ich einige UserNamen + Passwort übergeben. Wie macht man sowas?

Sorry für die ganzen Fragen, aber mein Ausbilder hat keine Ahnung davon und nach 1 Tag Googlen habe ich langsam aufgegeben ein gutes Tutorial oder eine andere Hilfestellung zu finden. Habe zwar einige Bücher hier liegen, aber in keinem wird etwas über Webservices beschrieben, wie ich es brauche...

Ich habe dann noch eine Frage:

Es erscheint bei mir immer folgende Warnung wenn Outlook nach dem debuggen des Projektes startet:


Die Datei oder Assembly Microsoft.Office.Interop.Outlook, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.



************** Exception Text **************

System.IO.FileNotFoundException: Die Datei oder Assembly Microsoft.Office.Interop.Outlook, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.

Dateiname: Microsoft.Office.Interop.Outlook, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c

   bei OutlookAddIn1.ThisAddIn.Initialize()

   bei Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.CreateStartupObject(EntryPoint entryPoint, Dependency dependency, Assembly objectAssembly)

   bei Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.ConfigureAppDomain()

   bei Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.LoadAssembliesAndConfigureAppDomain(IHostServiceProvider serviceProvider)

   bei Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.LoadEntryPointsHelper(IHostServiceProvider serviceProvider)


=== Zustandsinformationen vor Bindung ===

LOG: Benutzer = LAN-04\muellerd

LOG: DisplayName = Microsoft.Office.Interop.Outlook, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c

 (Fully-specified)

LOG: Appbase = file:///C:/Programme/Microsoft Visual Studio/Projekts/OutlookAddIn1/OutlookAddIn1/bin/Debug/

LOG: Ursprünglicher PrivatePath = NULL

Aufruf von Assembly : OutlookAddIn1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.

===

LOG: Diese Bindung startet im default-Load-Kontext.

LOG: Es wurde keine Anwendungskonfigurationsdatei gefunden.

LOG: Die Computerkonfigurationsdatei von C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config wird verwendet.

LOG: Verweis nach der Richtlinie: Microsoft.Office.Interop.Outlook, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c

LOG: Download von neuem URL file:///C:/Programme/Microsoft Visual Studio/Projekts/OutlookAddIn1/OutlookAddIn1/bin/Debug/Microsoft.Office.Interop.Outlook.DLL.

LOG: Download von neuem URL file:///C:/Programme/Microsoft Visual Studio/Projekts/OutlookAddIn1/OutlookAddIn1/bin/Debug/Microsoft.Office.Interop.Outlook/Microsoft.Office.Interop.Outlook.DLL.

LOG: Download von neuem URL file:///C:/Programme/Microsoft Visual Studio/Projekts/OutlookAddIn1/OutlookAddIn1/bin/Debug/Microsoft.Office.Interop.Outlook.EXE.

LOG: Download von neuem URL file:///C:/Programme/Microsoft Visual Studio/Projekts/OutlookAddIn1/OutlookAddIn1/bin/Debug/Microsoft.Office.Interop.Outlook/Microsoft.Office.Interop.Outlook.EXE.




************** Loaded Assemblies **************

mscorlib

    Assembly Version: 2.0.0.0

    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll

----------------------------------------

Microsoft.VisualStudio.Tools.Applications.Runtime

    Assembly Version: 8.0.0.0

    Win32 Version: 8.0.50727.940

    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualStudio.Tools.Applications.Runtime/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualStudio.Tools.Applications.Runtime.dll

----------------------------------------

Microsoft.Office.Tools.Common

    Assembly Version: 8.0.0.0

    Win32 Version: 8.0.50727.940

    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.Office.Tools.Common/8.0.0.0__b03f5f7f11d50a3a/Microsoft.Office.Tools.Common.dll

----------------------------------------

System

    Assembly Version: 2.0.0.0

    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

System.Windows.Forms

    Assembly Version: 2.0.0.0

    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)

    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

----------------------------------------

OutlookAddIn1

    Assembly Version: 1.0.0.0

    Win32 Version: 1.0.0.0

    CodeBase: file:///C:/Programme/Microsoft%20Visual%20Studio/Projekts/OutlookAddIn1/OutlookAddIn1/bin/Debug/OutlookAddIn1.DLL

----------------------------------------

Geschrieben

Bsp.: Dem WebService RoomService möchte ich den Raumnamen übergeben, dem UserService möchte ich einige UserNamen + Passwort übergeben. Wie macht man sowas?

Wenn du den Webservice in deinem Programm referenziert hast kannst du die Funktionen daraus doch ganz normal aufrufen und da übergibst du dann halt einfach die gewünschten Parameter mit.

Ich hab hier mal ein Beispiel um über den Amazon Webservice ein Album Cover zu einem Lied runterzuladen:


using (WebClient WebClient = new WebClient())
{
KeywordRequest req = new KeywordRequest();
req.keyword = Artist + " " + Album;
req.devtag = "XXX";
req.mode = "music";
req.type = "lite";
req.page = "1";

using (AmazonSearchService search = new AmazonSearchService())
{
int i = 0;
try
{
ProductInfo productInfo = search.KeywordSearchRequest(req);

for (; i < productInfo.Details.Length; ++i )
{
string Url = productInfo.Details[i].ImageUrlLarge;
//Download Image
}
return i;
}
catch (Exception ex) { }
}
}
[/PHP]

Geschrieben (bearbeitet)

Habe mich mal ein wenig weiter eingelesen in WebServices,

es funktioniert nun schon ganz gut.

Die SID bekomme ich ohne Probleme wieder,

allerdings habe ich Probleme mit der Methode AddRoom:

Die Doku dazu:

SoapMethods - openmeetings - Available SOAP-Services to login directly/embedding OpenMeetings - Google Code

Fehlermeldung:

Die Methode nimmt keine 20 Überladungen an...

Danach habe ich mal ein wenig gegoogelt und hier PHP Code dazu gefunden:

http://openmeetings.googlecode.com/svn/trunk/plugins/openmeetings_moodleplugin/openmeetings/openmeetings_gateway.php

Danach habe ich versucht die gleichen Parameter, wie im Beispiel dort übergeben werden, zu übergeben, aber es erscheint immernoch die gleiche Fehlermeldung.

Kann mir einer helfen und mir sagen was ich falsch mache?

Danke und viele Grüße

DeMue


                    //declare new UserService(us) and new RoomService (rs)

                    var us = new UserService();

                    var rs = new RoomService();

                    //get SessionID

                    var sessionResponse = us.getSession();

                    var sessionId = sessionResponse;

                    SID = sessionId.@return.session_id;

                    Console.WriteLine(SID);

                    //login User

                    us.loginUser(SID, "LoginName", "Passwort", out long2, out bool2);

                    //setUserObject

                    us.setUserObject(SID, EmailToSplit, SplittetMailToSplitFirstName, SplittetMailToSplitSureName, "http://wiki/skins/common/logo/logo.png", emailadress , out long3, out bool3);

                    //addRoom to Open Meetings

                    rs.addRoom(SID, "testname", 1, 4, true, 270, 280, 2, 2, 400, true, 276, 2, 592, 660, true, 2, 284, 310, 270,);

                    //set userObject

                    // You need it for each login

                    us.setUserObject(SID, EmailToSplit, SplittetMailToSplitFirstName, SplittetMailToSplitSureName);

                    //Room1 ID

                    Rooms Room = rs.getRoomById(SID, RoomID, true);

                    //Write SID and Room ID

                    KnownRoomID = (long)Room.rooms_id.Value;

Bearbeitet von DeMue
Geschrieben
Fehlermeldung:

Die Methode nimmt keine 20 Überladungen an...

So lautet die Fehlermeldung bestimmt nicht. Ein wenig mehr Sorgfalt wäre hier angebracht.

Die Methode hat 21 Parameter. Du gibst nur 20 an, der comment-Parameter, ein String, fehlt. Das zusätzliche Komma am Ende ist auch nicht in Ordnung.

Geschrieben


rs.addRoom(SID, TopicBox.Text , 1, "Added by Open Meeting Tools for Outlook" ,4, true, 270, 280, 2, 2, 400, true, 276, 2, 592, 660, true, 2, 284, 310, 270)

Schade, auch mit 21 gehts nicht.

Die Methode nimmt auch keine 21 Überladungen an..

Geschrieben (bearbeitet)

Hi DeMue

Nun ich tippe ganz einfach mal, das addRoom() einfach nur einen Array als Parameter besitzt.

Zumindest geht das aus dem PHP-Code hervor, den du oben verlinkt hast.

Greetz

Bearbeitet von LordHexa
Kleiner Nachtrag
Geschrieben

Falls jemand nochmal vor dem Problem stehen sollte, auch wenn ich nicht weiß woher die ganzen restlichen Parameter kommen, aber so funktioniert es:

Reihenfolge wie im PHP Beispiel, das einzige 'False' steht hier um den Room auf Private zu setzen:


 rs.addRoom(SID, RoomName, 1, true, "Added by Open Meeting Tools for Outlook", 16, true, false ,true, 270, true, 280, true, 2, true, 2, true, 400, true, true, true, 276, true, 2, true, 592, true, 660, true, true,true, 2, true, 284, true, 310, true, 270, true, out long4, out bool4);                      

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...